home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Nordlicht Spiele / Nordlicht Spiele 24-08 (19xx)(Nordlicht)(DE)(PD).zip / Nordlicht Spiele 24-08 (19xx)(Nordlicht)(DE)(PD).adf / Diary < prev    next >
Text File  |  1993-07-13  |  133KB  |  2,092 lines

  1. Pacman diary by Tony Brice. 30th April 1993.
  2. --------------------------------------------
  3.  
  4. Day 1: 30/4/93.
  5. ---------------
  6. Yes, I know it`s been done squillions of times before but who`s counting?
  7. Besides you couldn`t ask for a better introduction into the Amos language
  8. than something like Pacman. Besides, this one will be special. At least that
  9. is my intention.
  10.     Gathering what knowledge I gained from my first stab at programing
  11. in Amos - Ping Pong no less - I am aproaching this one with a little more
  12. thought. The pen and paper came out prior to any coding at all, and I have
  13. set myself up with a few rough notes on what the game will actually look
  14. like when it is done, and, having done this (and much easier it was to), I
  15. set up some sprites after deciding what colours should be in the game and
  16. using the same palette for both the icons - which will be used to display the
  17. map - and the sprites to be moved - such as the monsters and pacman himself.
  18. nd backgrounds in different colours and seeing the problems it creates later
  19. on when it comes to displaying them. Now the graphics are finished already -
  20. for now. Well, how many sprites did I really need to define - and I can
  21. move on. Some notes were made to keep track of all the definitions as well
  22. as a list of all the colours and their numbers. This will solve one of my
  23. greatest pitfalls when writing something, namely the lack of colours I use, 
  24. due to me using my Amiga with a black/white telly for many months. And, 
  25. after writing the code to display my sample screen, it looks blinding, and
  26. the colours are totally right after a couple of botched atempts on the sprite
  27. designer for not thinking and utilising the colours properly. I have yet to
  28. see the sprites in action but I don`t forsee any problems there, providing
  29. Amal is feeling cooperative. Quiet a productive start and it didn`t end 
  30. there.
  31.     I used my Dpaint disk for the first time today and, after getting to
  32. grips with the functions, I put together a simple little title screen, with
  33. some text in many different fonts (and colours of course), and a little piccy
  34. of the hero of the game. It looks very good for half an hours work, and is
  35. now functioning as the title screen. This picture, after a set amount of time
  36. flips to another screen which shows up the top five scores as well, so, for
  37. now, this is the front-end complete. I`ll go back to it after the game is
  38. finished so that I can make some nice little special effects in there. Who
  39. knows, what title screen can be complete without a scrolly, and I think I
  40. know how to do one now. Not to mention some bouncing screen effects as well.
  41. I stuck in a little bit of music which can be toggled on or off with a quick
  42. tap of the M key. I like the sound of True Faith by New Order as much as
  43. anyone, but when you`re listening to it a million times over while checking
  44. the game for bugs and glitches it can be a bit tiresome. Still, I hope you
  45. like it.
  46. The sonix2,1 program on the Amos disk converted the tune for me and all I had
  47. to do was stick it in a bank and save it out with the main program. I am
  48. getting to grips with Banks as well now, and it is certainly making life a
  49. lot easier. Now if only I could find a way of saving out my title picture out
  50. into one, then I wouldn`t need to load it in each time the game is run. But 
  51. at least it only needs to be done once, as I can keep it on it`s own screen.
  52. And boy does Amos make this easy. I almost feel guilty. I said almost. I have
  53. had some teething problems before it all came together.
  54.     So there we have it. A title screen, music and graphics, as well as
  55. the code to display the map all on the first day. Could be a record time on
  56. for completing this one. And it will be one hell of a boost for morale when
  57. I put all the routines onto paper, and then dive straight in with the player
  58. control bit. Then I can see my lovely sprites in action. And, time permiting 
  59. - I have a living to earn as well - I get the meanies and inteligence bit in
  60. as well. That done it should be plain sailing. By the way, I hope you aren`t
  61. expecting an easy game because I have four nicely coloured ghosties who are
  62. gonna prove otherwise. I can`t wait to see them zapping round the maze. Time
  63. to hit the sack now, so that has to wait till tomorow. After all, it is
  64. 4.12am.
  65.  
  66. Day 2: 6th May 1993.
  67. --------------------
  68. As usual I have proved to myself yet again that nothing is ever as easy as I
  69. think it is going to be. Problem number one: I can`t seem to get to grips
  70. with the sprites no matter how hard I try. I have given this up for a more
  71. fortuos route - that`s a big word for 12:35am - and have stuck all the sprite
  72. definitions into bobs instead; these I can manipulate and at last I am 
  73. getting somewhere. I think my problems could lie with the automatic sprite
  74. update functions etc, which I am looking into so that I can update them all
  75. myself. Bobs will be just as good for this game anyway and I can keep trying
  76. to get sprites and Amal to show a little coperation. I have also got serious
  77. problems with the colours. My bobs wont use their true pallete unless I use
  78. the Get sprite Palette command, and, for some totally stupid reason, this
  79. changes the colours of my Icons that display the map. I wouldn`t mind but I
  80. designed both sets with the same Palette so this shouldn`t happen. I think it
  81. is time to redo the graphics, this time making sure I get it right. I need
  82. some more sprites for the score when you kill ghosts etc.
  83.     I have finally - after much tweaking with the control methods etc -
  84. got mr. Pacman esq` up and moving properly around his little maze. He doesn`t
  85. eat the pills or anything yet but the collision checks are all there to make
  86. sure he can`t walk through walls etc. This made me feel a lot better once I
  87. had it up and running. I should be able to use the same routines to move the
  88. ghosts as well so that is one major headache out of the way. Speaking of 
  89. which, I am developing one hell of one right now. That`s what comes from 
  90. using the computer all day.
  91.     Had an interesting idea for a clever graphic effect today. I want to
  92. have two screens over each over on the display, one with the main picture
  93. and another totally black with a big hole in the centre that moves around 
  94. displaying whatever is underneath the hole only. I don`t know where to use
  95. this yet, but I saw the effect on the telly and thought: I can do that in 
  96. Amos and there you go. I have got to use it somewhere. More thought on this
  97. later. Maybe I`ll do a better picture for the title screen too.
  98.     And to wrap off, I had a fiddle with Stereo master today as well. I
  99. think I have a few samples I can use for sound-effects, providing I can find
  100. a way to import them into Amos. Should be fun.
  101.     I have the game roughly on paper now, which will make life a lot
  102. easier once I get into the flow. Still no problems with speed and hopefully
  103. I can keep it this way when the baddies are up and running as well. Next time
  104. I hope to get the score screen up. We`ll see.
  105.  
  106. Day 3: 10th May 1993.
  107. ---------------------
  108. Spent all day updating my Amos system yet again. I now use three drives with
  109. disks in to hold all the data and utilities I should need for development. A
  110. lot of fiddling was called for here as I had to make sure that Sid was used
  111. properly, ie: all the menus and buttons were set correctly, so that Df1: is
  112. not used to save anything to as it does not write to that drive for some dumb
  113. reason. The drive probably does not work properly, still I got it for nothing
  114. so I wont complain. All done now anyway, and Graphic converters, a desk top
  115. calculator, sid and Deluxe paint are all ready for instant access. I just
  116. love having everything I need to hand by building my own custom system, but
  117. now I probably wont use half of it. Still its there and that is good enough
  118. for me.
  119.     Further progress in the Music conversion process today. The reason I
  120. could not convert some of my Cover-disk music files to Amos banks was because
  121. some were crunched with Powerpacker and I had not realised. Some serious
  122. slaps to my forehead, and a little fiddling, resulted in more music available
  123. to use, and some in-depth knowledge on using the trackplay commands in Amos.
  124. My music problems are now most definetly solved, and I am totally spoilt for
  125. choice as to what music I can use in the game. Maybe I will stick to true
  126. faith after all. It kind of grows on me.
  127.     Sampled sounds are being worked on now, and I do not see any problems
  128. in that department in the near future. I have a program with Amos to build
  129. a sample bank and load it in with the main code so that any sound I like can
  130. be played in any way I choose. All I have to do now is find some suitable
  131. effects as I dont have access to a sampler so that I can create my own. I
  132. think I will be having a lot of fun getting some together. It is just a
  133. matter of deciding where I need them.
  134.     Tomorow, if I ever wake up, is my day off, so I hope to get the main
  135. sprite moving about and eating dots etc, as well as the score screen up and
  136. updating smoothly. Then it is time for the meanies, and the tricky problem of
  137. keeping the speed right. Definetly one for the compiler once I have finished
  138. as I have just about had enough of Amal. Once I am in buisness there, I will
  139. have to go back to the graphics and start over. No great sacrifice as the
  140. last were not to brilliant and I need extra definitions anyway. I wonder just
  141. how fast Amos can paste icons anyway. Hey, hang on, worry about that
  142. tommorow. 
  143.     It is time to hit the sack. Later.
  144.  
  145. Day 4: 11th May 1993.
  146. ---------------------
  147. Now how do I describe today? Well, the weather was nice. What do you mean
  148. never mind that, how about the game? Well, I did what I wanted to. Not very
  149. helpfull, eh? Well, I`m getting to it. The movement for the pacman is working
  150. and he does eat the dots now, and the score display is up and running, but,
  151. and here is the big but, it doesn`t work that well. The character moves too
  152. fast when he isn`t gobbling dots, and to slow when he is. The main problem is
  153. animating the character smoothly: it is going to need to be rewritten. I have
  154. already done it from scratch four times and none of them were efficient
  155. enough. I need the speed to be balanced wether he is eating or not and I have
  156. to keep the same speed even when I put in the ghosts moving.
  157. There is no real way to check this without having them moving as well but I
  158. am just putting in a rough delay loop for how much processing the enemy move
  159. routine will take. Not very accurate but it will have to suffice as I want to
  160. have the player movement totally right before I get into that part as the 
  161. main code will be much bigger by then so I will have to convert routines into
  162. procedures and fold them up when I no longer need to edit them. Anyway, back
  163. to the point, I don`t want the player to move in block jumps, ie: moving 16
  164. pixels per move to keep in line with the maze blocks, so I have to freeze
  165. input from the joystick while I move the character a pixel at a time until it
  166. has reached its destination, but I have to update all the other stuff in even
  167. movements regardless of wether the player is moving or not. It is all a
  168. matter of synchronisation, and my code is just not acceptable at the present
  169. time. Next time I am going to strip & rewrite it yet again. And again if I
  170. have to, as I want it to feel good as well as making sure the game is not
  171. sluggish. If I have to do a major rethink then so be it. If I think this game
  172. is worth doing (which I think it is) then there is no point in compromising.
  173. The person playing it will just delete the disk or throw it in the bin, if
  174. they don`t feel comfortable with the game, despite how good it looks or
  175. sounds. Then the whole effort would have been wasted. I`ve seen too many
  176. unplayable games to get away with poor control myself. Okay, enough of the
  177. concience crap. What else got done? Not a lot actually. This part has to be
  178. right, which is why I am spending so much time on it. I`ve stripped the code
  179. a bit and rearranged the routines to gain that little extra speed that will
  180. probably be needed later, and I have made the game loop back to the title
  181. screen each time Pacman eats all the dots. I have got the game sorted out so
  182. that it needs to only go to disk to load the title screen IFF once, and just
  183. hide the screen while in game. No annoying disk access here. Well, how could
  184. you get away with it in something as simple as Pacman, I ask you. And just
  185. to really ruin my day, printing the score really slows things up, even if I
  186. only do it when it needs updating. What a pain. That is something else to
  187. look into.
  188.  
  189. Day 5: 22nd May 1993.
  190. ---------------------
  191. Wow, ten days since I last did any work on the program. I guess today I ought
  192. to achieve a lot so that I keep interested. I put in a lot of effort on the
  193. sprite designer today, and came up with the brilliant idea of having the 
  194. icons (the bits that build the screen) as sprites and just displaying them by
  195. using the paste bob functions. This gives an added bonus of just one Palette
  196. ored. Everything is
  197. now displayed in the colours I want them to be. So if you don`t like the
  198. colour scheme then I can`t blame Amos. The new sprites look a lot better now
  199. that I have redifined them, and I think I will have another crack at them at
  200. a later date, as even I can do better than I have already done, and I am no
  201. artist. They are functional at the moment though, so the other tasks are more
  202. important.
  203.     Finally got pacman eating the dots today. I had to change the clear
  204. character routine, as I couldn`t paste an empty floor icon over something
  205. which needed to be erased as it would just draw over the top of it. I could
  206. not define an empty square over it either as it just would not show anything.
  207. I solved the problem with some clever use of the locate function, which would
  208. draw a box of four spaces underneath the pacman sprite in black. Crude, but
  209. effective although I might alter it later.
  210.     I would have got onto the new player-movement routine today but for
  211. ght as it is my sisters
  212. engagement and I have to get ready. And Two: I have recently quit smoking &
  213. I don`t have the concentration prowess without nicoteen at the moment to get
  214. into some heavy coding that will be nescesary to get it right.
  215.     Until next time then.
  216.  
  217. Day 6: 23rd May 1993.
  218. ---------------------
  219. A definite plus day today. Still of the fags, but I have a full pack just
  220. sitting in front of me as an exercize in will power, so we`ll see how long I
  221. can last. Concentration is not all it could be, but perseverance reaped its
  222. own rewards and I now have the pacman moving at an equal speed wether he is
  223. eating dots or not. The drawing a few spaces underneath the pacman to clear
  224. that bit of the screen was just to crude and slow so that had to go. A shame
  225. as it took me over an hour and mucho fiddling to get it in and working how I
  226. wanted it. Still, never happy, that`s me. I now have a different background
  227. colour behind the dots so that I can paste a blank icon over the space when
  228. er and it means I have some spare speed for
  229. when the meanies go in (soon now I promise) and then I can synchronise it all
  230. for the final time so that the speed of the game remains constant no matter
  231. what is happening. A little more work was spent with the sprite designer 
  232. again today. Still not totally happy but things are looking better. I think
  233. once the meanies are in I can look over the whole thing again and see how to
  234. do improvements. I designed the monsters ages ago and have yet to have them
  235. up and moving so that I know if they are alright.
  236.     A new title screen picture will have to be drawn. I want to lose some
  237. of the text (that is basically what the old one is. loads of text in as many
  238. different fonts as I could cram in.) and have an actual picture with a big
  239. square box in the centre for displaying high scores and things like that. A
  240. session with Deluxe paint is called for in the near future but first I have
  241. to get the enemy sprites on screen and moving. That`s next.
  242.  
  243. Day 7: 24th May 1993.
  244. ---------------------
  245. Yesterday I finally put the enemy monsters in and got them moving. Much
  246. hassle as I expected, but finally they moved around without cheating by 
  247. climbing over the walls, and, surprisingly even to me, the speed was still
  248. top notch. Definetly room to fiddle about with the inteligence. The dummy
  249. routine I have at the moment is just useless as they don`t even move unless
  250. they get a clear path to the pacman then wham bang and they are on top of
  251. you in no time, even if you do get three moves to their one. They also have
  252. the annoying habit of all ocupying the same square so you never know how many
  253. their are as they all move over one another. Just what I need. Monsters that
  254. prefer to go for each other rather than the player. Some working on the
  255. inteligence is the object of the day for today. I am thinking on the lines of
  256. them having a set path, and not changing direction until they reach a wall
  257. then they can have a rethink based on where the pacman is at that time, and
  258. this will be hell to implement, though I think this
  259. is how the original games inteligence actually worked. Also, if I can keep
  260. the speed up, then there will have to be four monsters - not three like I
  261. have at the moment - and I hope to actually have them moving in pixels, not
  262. blocks like I was forced to make the pacman do due to the screen layout
  263. changing as he moved. The synchronisation should be pretty easy to do once
  264. they move properly and I don`t forsee too much problems with speed. Not that
  265. I have had any so far apart from when the score is being displayed with the
  266. action. Still have to come up with a way of solving that little problem.
  267.     If I can get a better inteligence routine - I have the whole day to
  268. try - then it is probably time to make the power-pills actually do something
  269. and get the collisions in. Probably easier to check the block positions on
  270. pacman with relation to the baddies, rather than using the collision commands
  271. cause I`ll never know what is moving over what at the time pacman gets hit.
  272.  later anyway. Here goes nothing.
  273.  
  274. Later:
  275. ------
  276. Much more work on the inteligence put in now. The monsters are still thick,
  277. and I wont be happy with it until a lot more effort is put in, but the little
  278. bleeders can surprise you. They catch me out sometimes and I wrote the little
  279. routine to move them. Very unpredictable they can be and this is a downfall
  280. as I have to try and work out why they sometimes follow a preset path, or
  281. sometimes go all out on your tail, or sometimes just stop for a tea break
  282. until your x and y cordinates match and they kick in with fuel injection.
  283.     I still have to get the power pills working but the baddies now end
  284. the game if they hit you, though they still all want to occupy the same block
  285. and I haven`t got the patience to put in all the extra bits of code to stop
  286. them being so close. I have roughly got the inteligence working now. At 
  287. least it will do for the moment, so I am going to get on with the rest of the
  288. , and come back to it.
  289. I have to find a way of displaying the score while keeping the speed. I also
  290. need to put in the code for the warp gate - you know, the bit where you go
  291. off the screen on the left and reappear at the right and vice versa. It is
  292. a bit of a bugger going down the path with a wall at the end of it to get at
  293. the dots down there and seeing all the monsters come haring down there after
  294. you. And there is no way out of it. Then again the buggers are too stupid
  295. most of the time to follow you anyway but when they do it`s game over as I
  296. haven`t given you 3 lives yet. That should be done today as well. At the
  297. moment I have two little messages that come up when the game is over. This
  298. will obviously be changed later on. They are just there to tie up the loose
  299. ends so to speak so that I have the space to put in the end-game sequences
  300. later and so that the game does not keep jumping back into the editor when
  301. I am debugging. When I get the score screen up and working properly, I want
  302. et a high score and have a little box
  303. with the alphabet in and a moving cursor to select the characters for your
  304. name. A lot more polished than just a text entry cursor, and it`s something
  305. I wanted at the begining which is why I already did the cursor in my sprite
  306. collection. That bit should go in today as well as having the high score
  307. table actually working rather than dummy data.
  308.     Okay then. Back to the grind. Now where the hell do I start.
  309. Well, the title screen seemed like a fun place to start, so, instead of
  310. totally stressing myself out on incorporating the monster munching code, I
  311. stressed myself out with Dpaint II and tried to come up with a new Title
  312. screen. The new one does not look as good as the first - because I`ve got rid
  313. of all the text and now there is a lot of empty space - but the main box for
  314. mid-screen is there and providing I leave that the way it is, I can always
  315. edit around it later when I decide what to draw. A lot of intense work has
  316. s have been implemented.
  317. Gone is the flipping between screens routine. No need for it, as I have the
  318. box in the centre of the title screen to display stuff like credits and the
  319. high score table. All of the routines to display high scores etc have now
  320. been written, and a very nice atract sequence it looks now that it is 
  321. finished and tidied up. I have a clever routine to clear the inside of the
  322. box without altering the screen and so I just put in the subroutines to
  323. display everything in a predetermind (did I spell that right?) order and
  324. bounce some bobs around to create some movement to keep the watchers 
  325. attention. It looks good, and for once I have done something I am happy with.
  326. A few fixes were made so that the game can be started almost instantly no
  327. matter what is being displayed were put in and, thanks to the speed of Amos,
  328. everything is synchronised brilliantly. Hell, I even had to shove in a few
  329. delay loops, as colours were cycling to fast when the high scores were
  330. r with the best score has his name up
  331. in flashy fashion. As far as I am concerned this bit of the front-end is now
  332. finished, as otherwise I would probably go on forever just toning up the
  333. cosmetics as I thought up new ideas. Now I have to get the game matching the
  334. presentation, although I want to get the high-score entry bit in next, as I
  335. have never atempted to try a routine like the one I want to put in for
  336. entering your name, and I want to get the music for it in as well. I already
  337. have the tune on disk ready, and the nescesary code for playing it in the
  338. background. And I am impatient to get it up and running. Besides nobody said
  339. I had to write this game in a progressive manner, and, after all, it is 
  340. nearly finished. Until the next instalment.
  341.  
  342. Day 8: 25th May 1993.
  343. ---------------------
  344. Decided on forgetting about the high score entry routine for the moment, as
  345. my brain went into overdrive at work today and I coined a rough routine in
  346.  said
  347. earlier in the diary that I could not seem to get the bobs moving in pixel
  348. by pixel manner and I gave up in frustration and settled for block movement.
  349. That compromise has been niggling me ever since so today I finally got stuck
  350. right into it with a vengance and got the main character and the baddies
  351. finally moving in a smooth pixel by pixel manner. It looks a lot more 
  352. profesional, if slower, but I can always fiddle with the update rates via a
  353. skill level selection option on the title screen - about time this game had
  354. some options to speak off - so the game can run at the players choice of
  355. speed.
  356.     Still on the gameplay front, I have had a few new ideas with regard
  357. to the inteligence of the monsters. I think I should make them keep moving
  358. in the direction they start off in, and only change direction when they come
  359. up against a wall, when they can reasses where pacman is and go another way
  360. instead. I think this is how the arcade game actually works, and I am hoping
  361. ably mean a major rewrite of the
  362. entire inteligence routine which I am not looking forward to, still the game
  363. can`t be left as it is, as it is way to easy to avoid the little bleeders, 
  364. and this does not make a challenging game.
  365.     Keeping in line with the original arcade game, I have decided to
  366. incorporate two different modes of playing: Arcade & custom. Custom will be
  367. the current way - ie: pacman only moves when the joystick is moved. And
  368. Arcade will be like the original, where pacman moved in the selected
  369. direction untill the joystick indicated elsewhere or he headbutted a wall.
  370. This should make the game appeal to more people, as the lazy ones of you out
  371. there - come on, own up - only need push the stick every now and then, while
  372. the others can rely on a good joystick & fast reactions to keep the pacman
  373. on his toes. Definitly idea of the month this one, and, in theory, it should
  374. be pretty easy to code. Famous last words I suspect, still now I am commited.,
  375. re entry bit
  376. sometime in the near future. Like Magazine reviewers always say: Gameplay
  377. comes before polish. I`m not fussy. I want both.
  378.     Having said this, a few minor alterations were made to the front end
  379. bits today. Moving the joystick is now like a fast forward command to the
  380. title screen telly, and lets you move to the bit you want to see very quickly
  381.     This is for those who want to see the high score table again, when it
  382. has just disapeared and you forgot to see who was in second place and wont 
  383. see it again for another thirty seconds. Maybe it isn`t nescesary but it
  384. seemed like a nice idea at the time, and presented me with a little sideline
  385. to think on while I sorted out the animation for pacman routine in my head.
  386. I`ve also fixed the title screen so that fire will start the game as soon as
  387. the button is pressed rather than the computer ignoring you until it has
  388. finished what it is doing. Not very user friendly. And downright unsociable
  389. come to that. It works fine now anyway. That`s all for today.
  390.  
  391. 9: 26th May 1993.
  392. ---------------------
  393. Pretty good today so far. Got the Arcade and Custom modes both in and the
  394. apropriate mode selection on the title screen. Took a bit of fiddling to get
  395. it up and working right, especially when Amos decided it wanted me to clear
  396. all the bobs off the screen when the game starts before it would let me see
  397. any characters again. Heaven knows why, but it was a right pain trying to
  398. find a bug in my code which didn`t actually exist, just because I took out
  399. a command I didn`t think was nescesary at the begining of the game loop. I
  400. mean there is no point in zapping all the bobs left on the title screen when
  401. you are just going to display them again in the wink of an eye so I took out
  402. the command and then spent an hour wondering why I had nothing moving on
  403. screen and the joystick was playing eat the dots with an invisible pacman.
  404. Most annoying at the time. Anyway problem solved now, and the skill levels
  405. are in as well. At the moment all it adjusts is the Monster update rate, but
  406. efully I can get it to be a bit more inteligent depending on the level.
  407. The code for the enemy inteligence definetly has become top priority now. At
  408. the moment, for some strange reason I just can`t fathom, Pacman moves very
  409. slowly unless the baddies are moving as well, in which case he moves quicker
  410. and more smoothly. I would have thought this would be the other way round,
  411. but not so. I have some work to do here I think.
  412.     And again I had to do a little work on the front end. I don`t know
  413. why I keep saying that I am finished here. I still keep finding things to do
  414. with it. This time I had to display the current options and make them 
  415. selectable as well as put in a little routine to not start the game until
  416. you push and let go of the fire button so that the endgame screens don`t
  417. flick off and you start the game again imediatly. Surprisingly that worked
  418. first time, unlike any other routine I have written so far. Now it`s time to
  419. make the baddies have an IQ of Mensa standard. Don`t try this at home folks,
  420. qualified Surgeon/Butcher.
  421.  
  422. Later
  423. -----
  424. Oh boy, what a day. With the exception of a couple of hours, I have been at
  425. this inteligence routine nearly the whole day. I am currently on the tenth
  426. rewrite and I am still a bit of a way off. I keep coding a massive chunk of
  427. comparison and if = < > etc lines and ending up with a huge block of code
  428. that does not do the job very well at all. I have lost count of how many
  429. times I have stopped to rethink the whole thing through. Just my luck to be
  430. having problems with something that is absolutely vital to the gameplay. To
  431. make matters worse I suspect I am going to have one hell of a job keeping
  432. the speed right once I do get them moving inteligently, as everyone knows,
  433. the more instructions the computer has to process, the longer it is going to
  434. take. Here I go again for another crack.
  435.     Well, a little more success now, but I still am far from happy. The
  436. enemies are pretty smart now. One fatal move that lets them to near your tail
  437. e problem of monsters hugging
  438. each other. Not to worried about it at the moment as I want to have each of
  439. them with a different form of inteligence by the end of the diary and game.
  440. What a challenge: I`m having enough problems just getting them to use the
  441. routine I have now. Next game I write will absolutly not have Artificial
  442. inteligence. It is driving me up the wall. Having said that I probably will
  443. use it again, as I should know how to do it after writing this one. Live and
  444. learn as they say. The routine for baddie movement is a lot smaller and 
  445. neater now, so the speed should be kept up, even though I still have to work
  446. on it, because I am trying to make sure the baddies never stop at all, which
  447. they do sometimes at the moment.
  448.     I have subconciously abandoned the fourth baddy. I don`t really have
  449. room for it on screen and I think It will be to dificult with him there, if
  450. each monster is following different routes. Especially if the playscreen is
  451. not that big.
  452.  day, as I deserve a
  453. rest, even though the inteligence problem will probably bug me all night. I
  454. hope I`ll come up with some ideas when I am away from the computer like the
  455. animation routine. It`s amazing how quickly you get used to something being
  456. there. I was trying for days to get the bobs moving pixel smoothly but just
  457. couldn`t do it, and then, wam, inspiration, and I hardly even notice it now
  458. that I am embroiled in some other problem. I suspect that is what programing
  459. is probably about. Next week I probably will just take it for granted when
  460. I have three super fast baddies closing in on me and blocking off all my 
  461. exits while I am trying desperatly to grab the last dot.
  462.     And to another future thought. What sort of sounds am I going to use
  463. in the game? And where am I going to get them. Just another day in a tired
  464. programers life. Why is it never easy?
  465.  
  466. Day 10: 2nd June 1993.
  467. ----------------------
  468.     Had to take a few days off due to a sudden mystery virus that put me
  469. mputer. Short wages next week I think.
  470. Still not recovered yet but, as Pink Floyd say: The show must go on. Don`t
  471. know how much I can get done today, but I have to finish the inteligence bit
  472. sometime, and it is getting to be sooner rather than later. I have lots of
  473. other bits to work on, which I can`t even start on until this is done. It`s
  474. become annoying more than anything. I`ve even come up with a rough plan for
  475. my next game. More on this later on in the diary. Now back to those f**kin`
  476. baddies.
  477.     Ever had a day where you feel like a total prat but hate the idea of
  478. admiting it. This is one of mine. Spent at least four hours on another total
  479. rewrite of the code. It looked like I had a brilliant inteligence routine at
  480. last, the only minor problem I had was that the monsters map data wasn`t 
  481. cross referenced properly - or so I thought - so they were stopping and
  482. changing directions at invisible walls and floating straight over others. It
  483. e.
  484. I thought I had just entered a line wrong or something so I spent about two
  485. hours looking through for an error it later transpires was never there. 
  486.     Confused? I know I was. Well, let me explain. I got totally Pissed
  487. off with the dam thing in the end so I reloaded my old version before I had
  488. made any changes and spotted the error straight away. I had been using the
  489. X and Y pointers on the enemy map data the wrong way around and as a result,
  490. the enemies had been totally confused as to their actual position on the map.
  491.     Gutted? You bet. All that hard work down the drain for nothing. I am
  492. now going to put in what I can remember and hopefully I`ll have it right this
  493. time. Back in a minute. What a time to run out of cigarettes. So much for
  494. giving up, especially as I`m meant to be ill.
  495.     Right. That`s enough. I`m spending to much time getting nowhere and
  496. for now I am drawing the line. The code just keeps getting bigger and the
  497. whole thing is just not coming together. Sure, I could go back and start 
  498.  over parts of the program while I am trying to put this bit
  499. together but I am not going to. I am going to stay the hell away from the
  500. keyboard for as long as it takes, and try and devise an inteligence routine
  501. on paper that works and then code it. I have just about had enough of this
  502. trial and error aproach that I have been using for the last few sessions. It
  503. has worked okay for the rest of the program, but, as I should have forseen,
  504. something like this needs a lot more thinking about. I will return. Though
  505. I don`t know when, as I have another game idea to put to paper as well. And
  506. what an idea. See ya.
  507.  
  508. Day 11: 3rd June 1993.
  509. ----------------------
  510.     There, wasn`t gone that long was I. I made the mistake of giving up
  511. on my last game because I got totally tired of the way it was turning out, so
  512. this time I was determined not to give up so easily. It is really despairing
  513. to give up on something after spending so long on it. I worked out a new
  514. ning the
  515. computer off, and I have just had time to type it in this morning before I
  516. have to go to work. It is working well enough for now, and I have even put
  517. in a thick or smart option which determines how smart they actually are.
  518. What it basically does is tell the computer to watch where you are all the
  519. time if they are smart but only check where you are when they hit a wall if
  520. the thick mode is on. It works okay for now, but I`m sure that the computer
  521. could be made a lot smarter. Then again, I don`t intend to push it right now.
  522.     Went through the code just to straighten up a few short cuts I put
  523. in. The game was bypassing certain routines so that it would run quickly
  524. while I was gametesting, so I had to put it all back to normal. 
  525.     Very soon I am going to go through the whole game code - it`s rather
  526. large now - and tidy it all up. This is mainly for speed reasons later on,
  527. although it will ease my peace of mind. I can probably stick some of the
  528. hat editing is
  529. easier.
  530.     I have to get the power pills working now, but I still have to work
  531. out how to display the score without slowing right down. I will have to try
  532. a second screen and see if that helps.
  533.     A lot of thought is going to be needed very shortly even though,
  534. technically, this game is nearly finished. I have to decide what to do with
  535. the advancement of levels. Should I make the baddies move faster as you
  536. progress? Should I make them more inteligent? I should be so lucky. Should I
  537. have another couple of maps? Maybe load new ones in off disk and write a map
  538. editor so I can save a few. I still have to put in the gateway off left &
  539. right ends of the screen. Baddies not allowed, I think. And maybe the high
  540. score entry routine just to finish it off. All will be revealed in the end.
  541. At least I`m not so apethetic as to want to give up today. Maybe things are
  542. looking up.
  543.     To think, when I started this game, I thought it would take a day, or
  544.  session.
  545. That was just cosmetic. Not far to go now, anyway.
  546.  
  547. Later in the day - otherwise known as early the following morning
  548. -----------------------------------------------------------------
  549. I have decided that a few of the actual gameplay routines are long past
  550. putting in time. Okay, so I haven`t decided what to do when the screen is
  551. completed yet or stuff like that but things like the pacman dying animation
  552. and the powerpills working etc all need to go in soon. Also the lifes bit &
  553. the displaying scores etc needs implementing. This is all to come but some
  554. major upgrading of my Amos development disks was called for today so that I
  555. could put the new version of Protracker in the system as this has the best
  556. tools for sound sampling and music editing yet. Even better than Octamed 
  557. though the two don`t appear to be compatible. No great problem as I have
  558. never really used Octamed that much anyway. I can`t edit a lot of the old
  559. music files I have with Protracker but they can be converted if I find one
  560. ike anyway, via Amos. It`s with the sound effects that I really
  561. need this program. This is my current action plan at the moment, and I have
  562. got hold of lots of pacman-apropriate effects from using this tool, and I
  563. now have all the effects the game will need in a bank ready for use. My
  564. first step was to write a small program to fiddle with the sounds so I could
  565. find out how to use them best rather than the clumsy and time-consuming try-
  566. it-and-see method that I am used to using. The program was duly written and
  567. the pen and paper came out for making notes, and, finally, I have finished.
  568. No, the sounds are not in yet. But they will be as I now know exactlly which
  569. ones to use and where. P.S. I`ve got this really sexy computer voice to rub
  570. it in and say Game over when you blow it. It sounds great now that I`ve
  571. resampled it and adjusted the tempo etc. Pity I only use it the once. Right
  572. then, enough of the gassing, I have to put in the sounds that can go in
  573. effects for.
  574. Pacman can`t eat the monsters yet as the power pills have no effect until I
  575. get around to it. I`ll get there one day.
  576.     This will be my final entry of the day as I really have to get to
  577. sleep sometime. It`s amazing just how much you can actually get done if you
  578. put your mind to it. I`ve been at it about two hours since my last entry in
  579. the diary and I have achieved an incredible amount. It might not sound much
  580. when I say what, but it is in programing terms. Just shows how much you can
  581. do if you are in the right frame of mind and things are going well. The
  582. sound effects are all implemented now, and I also have Pacman with three
  583. lives. The death routine is in complete with animation, and the pause mode
  584. and jingle bits are complete. The music I was going to use for entering a
  585. high score name is to be used for clearing the screen of dots now, so I
  586. might need to find some more for that purpose. The warp gates are in and a
  587. godsend they are to if you get trapped down the dead ends. Just stab fire
  588. man evaporates to appear at the other end. Very nice it looks to, and
  589. it doesn`t half feel good when the monsters are gobbling on empty space
  590. where you used to be. Now that the sound and these simple little bits are in
  591. the game feels 100% better already. I`m feeling good about how it will be
  592. when finished now. Once I put in the power pill bits and have Pacman gobbling
  593. monsters then it is just a matter of tuning up the inteligence (I`m going to
  594. hate that bit) and working on the dificulty bit so that it is hard but not
  595. to hard. Then I have to decide on different screens or not. The title screen
  596. is going to have to go back to Deluxe paint again because I need another
  597. option on screen and I have nowhere to put it. I want to have the number of
  598. baddies on screen selectable, and the old screen is looking clumsy now that
  599. I have put in all these options. The code is getting very big now. I will
  600. have to go other the whole thing once finished and trim it up so that the
  601. f keeping the title screen
  602. saved with the program so I don`t need to keep loading it each time the game
  603. is rerun. It looks very ameatur and I don`t think the compiler will like it
  604. much. Besides, the game needs to be all in one file ideally for ease-of-use.
  605. Expect more progress next time. Bye.
  606.  
  607. Day 12: 4th June 93.
  608. --------------------
  609. I can`t believe I was up and at it this morning at about 8:30. It`s my day
  610. off and I usually lie in. Still can`t be a bad thing. Haven`t touched the
  611. game yet, but I have redrawn the new title screen on Dpaint and put in a
  612. box on the top which will show all the options and let you highlight them &
  613. change them with the joystick, all going to plan. It means there is going to
  614. need to be some serious revision of the front end code but it has to be done
  615. as the old one is to clumsy. Due to my stubborn insistence on keeping the
  616. mid-screen box for displaying high-scores and other info, I had to put this
  617. options box at the top of the screen and the pacman logo at the bottom. It
  618. rd there but there isn`t a lot I can do about it unless I rip
  619. everything out and start from scratch. I don`t think so. Made a mental note
  620. today not to start fiddling with the front-end of any future programs until
  621. I know what options will need to be set. This has been the third time I have
  622. had to redraw the main screen and it is becoming tiresome. Oh boy, I hope I
  623. don`t think of any more options, I absolutly refuse to do another redraw. As
  624. an added bonus, I also think I`ve worked out a way to save the title screen
  625. graphics out with the main code so no more loading each time I rerun the
  626. game. A godsend let me tell you. Got to go and get a haircut now, and go
  627. watch strike it lucky being recorded at the studios later so I don`t know if
  628. I`ll actually get back to it today. Until next time.
  629.  
  630. Day 13: 5th June 1993.
  631. ----------------------
  632. Started off the day reading up on Dpaint II for the first time. All the time
  633. I`ve used it until now had been by a process of trial and error so I thought
  634. how to use it properly. And boy did I learn. I
  635. also spent a couple of hours rearranging my computer system around as I
  636. didn`t like how it was. Much arranging later and I have come to the heavy
  637. conclussion that I need a new - bigger - desk. I`ve accumalated so much
  638. equipment and disks that I don`t have the space and shelves for it all, and
  639. everything is really cluttered. Maybe when I can afford it, I`ll invest in
  640. a new desk and build some shelves. Anyway, after much fiddling with Dpaint,
  641. I have done some more work on the title screen. Ok, it still looks rubbish -
  642. like I said, graphics are not my thing - but it looks a flashy rubbish as I
  643. have been playing with differing - where I defined set ranges of colours and
  644. filled areas of the screen with this shade in pixels which goes from dark to
  645. bright in ranges of colours - and it looks quiet clever and saves hours in
  646. comparison to doing it manually. It`s very colourfull as well. Put in the
  647. nescesary alterations to the main code so that it doesn`t load from disk
  648.  more and is saved as a bank. That has brought me to the conclussion that
  649. I ought to set up a seperate disk to store all the files/editors/banks and
  650. notes as a back up because the only copies I have at the moment are stored
  651. with the main program code. It is quiet big because of this but like I said
  652. I didn`t want the game to load off disk, and I have no storage space for the
  653. routines on my development disks as well. Some crunching of the whole game
  654. will be done at a later date as well, just to round the whole thing off into
  655. one - smallish - file. I hope the compiler knows what to do with banks. Oer,
  656. that never occured to me before, but I shouldn`t think there will be any
  657. problems. Now I am going back to the game to put in all the options select
  658. bits and display them based on the new designed screen. This is going to be
  659. another matter of trial and error. If I get time, then the score screen goes
  660. in as well. It`s been to long, and where is the incentive to keep playing if
  661. effort.
  662.  
  663. Day 14: 6th June 1993.
  664. ----------------------
  665. Well,  in all I`ve been at it about 14 days, although not consecutively, and,
  666. as I have already mentioned, the end of the road is actually in sight. I did
  667. hope to get a lot more done yesterday, but the untimely visit by a friend
  668. put paid to that, though the options selection on the title screen is now
  669. complete and debugged. Took advantage of the untimely friends presence to 
  670. get some feedback on the game so far, by letting him have a couple of goes
  671. and seeing how he fared against my computer inteligence routines. Once they
  672. locked on, the baddies got him without fail and he never did totally clear
  673. the screen, but he was getting closer each time, and he was also working out
  674. how to confuse the monsters - like I`ve known how all along - and was very
  675. slowly starting to use this to his advantage. Given enough goes he would
  676. probably have cracked it, and he is no brilliant games player - even if he
  677. nteligence
  678. routines, and I have got to improve them before I can technicaly call this
  679. game finished. As I have stayed away from any modifications to the routines
  680. recently, I have developed a new perspective on the way to do this, and come
  681. up with some new ideas as well, so I will indeed do some more work on this in
  682. the near future.
  683.     Today has not been a day for coding so far. To start with I have had
  684. to work all day so the computer has not even been on till now, and it is now
  685. coming up to 12am - I suppose really that means this should be part of 
  686. tomorows diary, but it is not really that important. I have been thinking
  687. with a pad of paper and a pen for the last hour or so, and have been writing
  688. down a list of routines which have to go in before the game is finished. Here
  689. we go then:
  690.  
  691.     1. Computer inteligence tweaks.
  692.     2. High score name entry routine (how long have I been saying this?)
  693.     3. Animation on the game start. (I want pacman to fold into shape)
  694. I play)
  695.     5. Power pills need to be working, and enemy inteligence adapted.
  696.     6. The gobble monsters bit.
  697.     7. Map Load routine.
  698.     8. I need to write a map editor.
  699.     9. Clearing of screen animation.
  700.        10. Game over animation.
  701.  
  702.     That is what is needed before my task is complete, and, as you can
  703. see, some of it is going to be a lot easier than others. Okay, now for a 
  704. little explanation.  Point 3: the animation on game start - basically, when
  705. pacman dies, a little animation is triggered like in the arcade game, where
  706. he sort of folds in on himself before going splat. I have all the sprites
  707. for this little animation so I might as well play them in reverse to show
  708. Pacman making his grand appearance, like he does when using his warp gates.
  709. Point 7: the map load routine. As I mentioned earlier in the diary, the game
  710. had no real feel of continuity; at the moment the game just says well done
  711. when you eat all the dots and plays a little tune and then jumps back to the
  712. how to make it more fun to
  713. play, but I have now decided to have several screens stored on disk (or 
  714. maybe in a bank depending on memory considerations - like I said I want to
  715. compile this later) to load in as you progress and I have to make the game
  716. get gradually harder each screen. The inteligence will have to be modified
  717. based around each new screen as well. Obviously I can`t put this part of the
  718. game in until I decide on what format the screens will be in as I have to do
  719. option 8 first, which is to write a map editor program as a seperate tool
  720. like the sound effects creator I wrote for defining the samples and their
  721. frequencies. As to how many screens the game will have. We`ll see how it
  722. goes. Maybe I`ll incorporate twenty or so, and then leave the code for
  723. the designer in with the game so that the user can also make up his own. The
  724. inclusion of multiple screens and a level designer must do a lot for a games
  725. lasting interest after all. We`ll see.
  726. parts of
  727. the game. At the moment I just have a little text message for each event, and
  728. if you cleared the level then you get a little tune, whereas if you got
  729. nailed then a sexy female computer voice says "Game over" Well, she could
  730. hardly say "Well done", eh?
  731.     Okay, enough gabbing I think. It`s time to put my money where my
  732. mouth is and get on with it. Here comes the starting animation and the score
  733. screen. GUUUULLLLLLP!
  734.     A definite improvement now. The score screen is in, and after much
  735. fiddling, is working fine. The speed is unchanged and I think some more
  736. can be gained when I complete the game and go through it with a toothcomb,
  737. just generaly tidying up, and modifying routines to take less memory and
  738. work more efficiently. Things are definitely coming along in leaps and 
  739. bounds. The animation when the game starts is working as well, and a lot
  740. nicer it looks too. The transition between dying and restarting is a lot
  741. quicker and smoother, and it looks polished too. You could say I`m happy.
  742. `s two of the ten points I can knock off my list. I want
  743. to get the power pill bit working, but I have to improve the monster 
  744. movement routine first as they have to follow different rules if they are
  745. on the defensive. They`d look a bit silly running after pacman, if he is in
  746. the eat them and gain squilions of points mode. The inteligence gets finished
  747. once and for all on the next session.
  748.     I set up a seperate disk for the whole game and associated data so
  749. that I can develop it more easily. No more fiddling with which drive to use
  750. etc. Now it`s all on one disk, and I can save everything on to it when the
  751. game has finished so I have all the data away from my development disks and
  752. I can free some space on them in preperation for my next game. This seems to
  753. be quite a good idea as I can run out of space even on a three drive system,
  754. if I leave all the stuff which isn`t nescesary anymore on them.
  755.     I`ve been thinking about what to display when the player has done
  756.  as I`m not to hot on
  757. graphics - or perhaps a short animation, which can be turned off as an
  758. option on the title screen if the player has seen it once and doesn`t want
  759. to be bothered with it every time they play. Oh, no, not another option. Can
  760. my title screen stand all these changes. I`m also thinking along the lines of
  761. a picture of a newspaper saying Pacman defeated in surprise result when the
  762. player loses all his lives. This is not certain yet, but I am throwing the
  763. ideas around in the back of my mind while I am working on other bits. I have
  764. to put together the map editor after the computer inteligence and power pill
  765. bits as well because the game has to have some continuity for when I get a
  766. couple of friends to play-test it in the near future. There`s no beating
  767. about anymore, anyway. All the short routines to implement are in now, and
  768. it`s just the major changes to get in and functioning. Until tomorow.
  769.  
  770. Day 15: 8th June 1993.
  771. ----------------------
  772. iority today. More
  773. fiddling around with banks etc so that I can save out my sprite bank with
  774. this program for easy editing. Got the main screen up and the cursor movement
  775. in and now its just a matter of how to define what can and can`t be changed
  776. on each screen. At the moment I have no graphic to show for the warp gates
  777. so I am undecided as to wether I should make them redifinable or not. If I
  778. do then a lot more code fiddling is going to be required so that Pacman
  779. appears at the right place depending on which screen he is in. But, if I
  780. don`t then there will be quiet a limit on how editable each screen can 
  781. actually be. Maybe I should think about keeping the game like its arcade
  782. counterpart, whereas you go off screen and reappear at the other side. This
  783. would make things a lot easier in the map-edit bit as it would not need to
  784. keep track of where the warp gates are in each map, I can just tell the
  785. computer to zap pacman to the other side of the screen if he goes off one
  786. ing in the warp gates and their
  787. animation in the first place will have gone to waste. Decisions, decisions.
  788.     I have to work out how to store the maps as well. I could possibly
  789. stick each one in a databank, and just load each file as required, but I
  790. don`t actually know how to do this yet. Maybe I will have to write my own
  791. I/O routine similar to the ones I used to write on the c64 for the many
  792. databases I programmed. More thought on this point as well, I suspect.
  793.     I really need to find a way of flashing my cursor on the map editor
  794. as it is quiet hard to see at the moment. I think I can do this with a bit
  795. of fiddling with the palette command. Find out later. I`ve decided on making
  796. sure this map-editor is nothing to flash. Just a simple way of putting some
  797. screens together, as it will only be used for this game. I might go back to
  798. it at a later date though, because I can probably modify it to be a screen
  799. designer in general, if I put in some scrolly routines etc. Should be fun.
  800. banks and I/O handling. There`s no
  801. point in me designing loadsascreens if I can`t save the bloody things out.
  802.     You try doing all this when you have a major hang-over from a works
  803. night out. Have I learnt my lesson about the evil drink - I don`t think so.
  804.     A little later on - about three hours - I have finally ripped apart
  805. another Amos program to get a rough idea on how to load and save to a file.
  806. At the moment my routine is simple. It just loads one map, but now that it
  807. is there I can customise it by putting up a requester asking for the map
  808. number to load/save and so on. Also into the editor is an option for a help
  809. page - usefull if I can`t remember which keys do what at a later date when
  810. I actually start to build the maps - which I still have to put in. Some
  811. standard keyboard commands for showing the default map - the one I use at the
  812. moment - and a clear screen command. At the moment these commands will only
  813. work if the apropriate key is pressed three times. This is in case of silly
  814. afer, I`ll probably have a confirmation requester that
  815. will let you save the screen or change your mind. Much more user friendly.
  816. The editor itself is not functioning yet - as I said I wanted to make sure
  817. I could load and save all my creations first - but it wont be long before I
  818. can start making some maps. I still have to decide on the warp gates bit, as
  819. well as how much can be configured. I have displayed the pacman and monster
  820. sprites on screen as well, just so the user knows where they will be at the
  821. start of each map. I have to decide wether to have these bits user-defined
  822. as well. More hassle. I think the map editor will get finished by the end
  823. of the day though I don`t know if I`ll actually get any maps designed. I must
  824. remember to have the number of dots saved out with the mapdata as well,
  825. because not every screen is going to have the same number are they? See what
  826. I mean about still needing some more thought before carrying on with the
  827. program. Back to the grind again.
  828.  the map editor is now finished. A bit
  829. of thought was nescesary before finishing it, but I have now decided on ten
  830. different maps, and put in a little file selector for loading and saving each
  831. map individualy. The maps are all less than 1k in size so speedy loading is
  832. the order of the day but I am hoping to actually be able to incorporate all
  833. the maps into one bank and just lump them in with the main program. Not much
  834. point in me doing this with the editor program though, as each map can be
  835. more adaptable if kept apart from the rest. I will probably write a program
  836. later on to convert the ten maps on disk into one bank and then put it in
  837. with the game once I have got some screens I am happy with. As I said I don`t
  838. like the idea of loading of the disk, and also it might be a bit tricky to
  839. know which map the computer should be loading. Anyway, map editor done, and
  840. another one of my ten points implemented. Each day brings that compiled gane
  841. n the
  842. same thing forever. Besides it takes forever to load and update this diary
  843. now as it is such a big file.
  844.     Got to do some more disk editing now, as I`ve got all sorts of dummy
  845. files and the like to sort out, since I started playing with the output files
  846. through Amos. It took quiet a few times to get the save format right, let me
  847. tell you. See you later.
  848.     Just time for one more stop today as I`ve just finished work and had
  849. a few ideas to implement in the map editor. alright, so it`s not really
  850. that nescesary to have a brilliant editor that looks great etc as I`m still
  851. not certain wether I am going to have it with the game or not. If I do then
  852. I probably will have to load off disk for each screen which I don`t really
  853. want to do. Some research into storing data into the banks is called for here
  854. but I don`t know where to look. What I would do for the original Amos manual
  855. right now. Anyway, enough of that. The editor needs a few cosmetic changes
  856. d I don`t
  857. really want to be fiddling around with the joystick trying to build each
  858. screen. Some key input routines are needed to make editing quicker - I can`t
  859. be bothered to read the mouse, and the keyboard will probably be faster
  860. anyway. I have also decided to have the warp gates user-defined if it is
  861. required. If you`r going to have a map editor, then you might as well have a
  862. proper one. Okay, so I lose my snazzy animation bit for warping, but it`s 
  863. not a major sacrifice, and being true to the arcade game is probably a much
  864. better idea. Now I have to decide if the monsters can follow you. I think
  865. so. Maybe also tweak their inteligence so they head for a hole if they are to
  866. far away so they can lock onto you quicker. You just know this is going to
  867. be hell to implement in code form. Still, now that I have written it down, I
  868. have got to do it because I swore to myself when I first started this diary
  869. that I would not edit bits I wrote down, just so I didn`t have to write a
  870. to it so far, and look at some of the
  871. features it`s led to, so I`ve no intention of stopping now. Back to work for
  872. the last time tonight.
  873.     Okay, finally all done. Well almost. I have the editor working 
  874. intuitively now. I-e it works how the user would expect it to work. The
  875. cursor now wraps around the screen if put over any edge. The keyboard can be
  876. used instead of the joystick (much easier) and the computer works out the
  877. pill data and saves it out with the map data. The whole thing is running very
  878. well now, and I am more than happy with it. Just one more option to put in
  879. next time - I put in an advance square bit every time you select an icon and
  880. I want to have this part optional as I seem to find editing easier without
  881. this mode on but others might not. Like I pointed out earlier: the editor has
  882. to function how I want it because I will be using it a lot for a while. Spent
  883. a while on tidying up the display in general and getting rid of surplus lines
  884. I even stuck it
  885. through the compiler just to see if the thing could handle the conversion of
  886. banks. No problems there, even if I did run out of disk space. When I do get
  887. the game running properly off one file and compiled, I think it is going to
  888. be one big file. I shall have to use the compilers cruncher when I do it, or
  889. use powerpacker. I suppose anything I code will be like this while I am 
  890. using Amos, as it has to have a lot of system data saved with the games code
  891. itself. When I finally get to grips with assembly language on the Amiga -
  892. it is nothing like the c64 6510 machine code which I did get the hang off -
  893. then I will have much shorter programs, until then I will have to grin and
  894. bear it. Anyhow, all is now on for the next session, where I will put in the
  895. routines for travelling through a warp-gate (ie: moving off screen), letting
  896. the baddies do the same, loading screens each time one is completed, and
  897. hopefully, once the modifications are implemented, the powerpills are going
  898. g more than give you ten points. We shall see. I also
  899. want to change the clearbox routine used on the title screen. Amos has some
  900. clever scroll commands for moving certain bits of the screen around, and I
  901. want to learn how to use them. What better way to learn, than to scroll each
  902. page of info off screen when the next is going to be shown. I can not wait
  903. to try it out. It has to look better than the crummy routine I have now which
  904. I thought was oh so clever, but in reality looks slow and clumsy, and makes
  905. it look like the computer can not cope with everything it is doing. I just
  906. can not leave it like that. Time to sleep as I have to work first thing in
  907. the morning.
  908.  
  909. Day 16: 9th June 1993.
  910. ----------------------
  911. Went out for some beer today, so there was nearly no work done at all. I
  912. loaded up after coming back from the pub with the intention of designing some
  913. maps with the editor I spent so much time on yesterday. Kept looking at my
  914. little list though and thinking how my time could be spent more constructive
  915. means. I got the guilt syndrome and finally wrote the routine to enter a high
  916. score name and spent over an hour getting the data to move around properly.
  917. The game now has a definite feel to it, now that the three lives and the end
  918. of game routines are complete and working properly. Alright so it probably
  919. isn`t the most important thing to be done, it had to be put in eventually,
  920. and I just decided on now rather than later. The code looks a little sloppy,
  921. but then so does the rest of the game, but it all functions well enough, and
  922. when I am finished I will rip through the whole lot, just generally tidying
  923. up and saving up some memory. The program will be easier to edit as well if
  924. there aren`t so many lines, and the complete routines are folded up and
  925. forgotten about. Anyway, that`s another of my implementations crossed off
  926. the list and to briefly summarise, here`s what we have left.
  927.  
  928.     1. The computer inteligence.
  929.     5. Power pill routines. To play background noise and alter enemy
  930.        paths.
  931. outines. All part of number 5.
  932.     7. Map save/load routine. I have to design the screens first and
  933.        decide wether to keep the data in memory or not.
  934.     9. End of level animation or similar. Not sure what to do here yet.
  935.        This part will probably go in last.
  936.     10. Game over bit. You could say this is finished now that I have the
  937.         lives in and the high score entry etc, all looking polished.
  938.  
  939.     I think I will probably get the map decisions sorted out and get it
  940. working with different screens tomorow so that the game loop is all there,
  941. and then I can worry about the tuning up afterwards. I`ll make the game load
  942. of disk for now, and then decide later if I want to have all the data in
  943. memory. I`ll keep the editor with the main program if I can shorten it all
  944. up so that it isn`t so memory intensive like it is at the moment. I`ll have
  945. the screens I design as defaults and have an option to use the custom ten
  946. screens in game if the player so desires. This should make the game appeal
  947.  want to use the screen designer. Things are
  948. going quiet well at the moment, and I am optomistic about a near completion.
  949. Still not quiet confident enough to name the day though yet. We`ll see how it
  950. goes with the inteligence bits later on, though I am damned if I am going to
  951. let that hold me up now. I have several ideas already on how to improve it.
  952.  
  953. Day 17: 10th June 1993.
  954. -----------------------
  955. Not a day for getting much work done, I`m afraid. Loaded up briefly earlier
  956. on for a look over the game again, this time from a gamesplayers eyes rather
  957. than a programer. It`s alright looking over the game with an eye to 
  958. improving little bits that aren`t working quiet the way you want them to but
  959. that doesn`t nescesarily make the game more appealing to the person with a 
  960. joystick in their hand trying to play the thing and not caring one iota if
  961. you have used clever programing tricks to gain a second of speed or not. This
  962. game has so far just been used as a programming exersize rather than an
  963.  of the best arcade games ever created. Now that I am
  964. almost through with the programming, I have to go over the game - by playing
  965. it over and over again - to make sure it has the right feel and that the
  966. person playing it is going to feel happy with it. The overall sense of
  967. opinion so far is that there is definite room for improvement. Most of which
  968. I have already set out for some major rewriting, but some more making notes
  969. is needed on just which parts to adjust and deciding what else needs to be
  970. done. I have got the whole game hanging together quiet well at the moment,
  971. and having the extra screens in and running will no doubt help, but to make
  972. it as close to the original as I would like, there has to be more done. As an
  973. example, the sprite editor is going to be needed again, as Pacman really has
  974. to be animated. It`s just not good enough to have one definition for each
  975. way the main character is moving. I want him to open his mouth like his 
  976.  for
  977. there. The screen draw routine will need some fiddling as well, to make it
  978. faster if possible, as games players are alike in that they all hate annoying
  979. delays between goes. The list is - in theory - endless, and I think I am
  980. going to have writers cramp by the end of it. It all has to get done, though,
  981. as there is no point spending so much time writing a game which people might
  982. not like to play because of silly things which could have been ironed out
  983. with a little more thought. I hope to get a few friends to test the game out
  984. at a later date, just to make sure I have got it right, while I sit there 
  985. with a notebook and take all the critiscism and comments, no matter how bad.
  986. If it`s valid then I don`t care how negative it is, I intend to do my hardest
  987. to fix it. I suspect this is where a lot of game programmers go wrong and I
  988. have no intention of following in their shoes. Most software houses employ
  989. about ten people just to test games and give opinions to the programmers
  990. make a living as everyone who has ever
  991. played a game must have had something they didn`t like about it and would 
  992. love to have a chance to air their views. Difference is: I won`t have to pay
  993. my mates to test this one out. They`ll do it just to get a chance to play on
  994. my computer, and to have their name in lights if I credit them on the title
  995. screen. Moral statement of the day over, now it`s back to the game with pen
  996. and paper in hand.
  997.  
  998. Day 18: 11th June 1993.
  999. -----------------------
  1000. Back with a vengance today. Started off by getting the load screen routines
  1001. in and looping it all together so that the game is basically all in and the
  1002. refinements can be made and tested fully. Put in another option on the title
  1003. screen to let you choose between two sets of screens. One is the set that
  1004. comes with the game, and the other is the custom screens which can be edited
  1005. with the map-editor. I`ve updated the map editor - now in version 2.0 - so
  1006. that any 1 of the twenty screens can be loaded, edited, and resaved, although
  1007.  editor will be adapted if I put it into the game, so that only the custom
  1008. screens can be fiddled with. I have to have access to all of the screens at
  1009. the moment though, because I have yet to design them. My strange set of
  1010. priorities seemed to indicate that the putting together of the actual main
  1011. game loop so that it is playable in its current form seemed to be more 
  1012. important. Now it is all in although a lot of refinements are needed to some
  1013. of the routines just for tidying and smoothing out. The end of screen bit
  1014. just shows a little message and waits for fire to be pressed before loading
  1015. the next map and upping the skill level if the player has gone through all
  1016. ten screens. I`m sure I can do something more interesting when I come back
  1017. to this bit later on. The game design is certainly going a lot better now
  1018. than before. Having set objectives certainly helps in the progress department
  1019. although the programming is not getting any easier. Due to the way I have
  1020.  which can be tidied up
  1021. and smoothed out etc. Before I go any further I hope to go through the entire
  1022. code and tidy up as well as shorten, so that I have space for the editor in
  1023. game at the same time. I know I should really do this at the end, but tidying
  1024. up now can do no harm and will make it easier to edit and build upon what I
  1025. have done so far. Also next on the agenda is to design some more screens. At
  1026. the moment I have twenty on disk, all exactly the same, so the game is pretty
  1027. boring at the moment, and no changes are apparent when the screen is cleared.
  1028. I have to make a decision between slow screen drawing and smooth sprite
  1029. movement or fast drawing and flickery sprites. Not much of a choice really,
  1030. because without the double buffer command, the game plays terribly. A much
  1031. nescesary sacrifice, I think. I am also trying to look into ways of loading
  1032. all ten of whichever set of screens are nescesary just once when the game
  1033. first loads, as I have already mentioned, I want to avoid going to disk if
  1034. ible. More fiddling with banks coming up later.
  1035.     The inclusion of more screens will let me analyse the computer
  1036. inteligence routine in more detail as well which can only help when I
  1037. rewrite it to play properly. It seems as fast as I write the bits I need, I
  1038. am coming up with new bits that are needed. I will eventually finish, it`s
  1039. just that some days I feel closer to the end than others. I have now decided
  1040. that I am unhappy with the options selection on the title screen and want to
  1041. do something to make it feel better. Another rewrite of the display and
  1042. input routines needed once I come up with a better system. Oh boy, I hope 
  1043. the work I have put into this is eventually apreciated.
  1044.     Had a friend playtesting for me again today. The last time I let him
  1045. lose on the game was a couple of weeks ago, when it was in a much shallower
  1046. form, and he discovered a few bugs with the warp gate routines which I had
  1047. not noticed almost immediatly. I was pretty sure that he would not find any
  1048. d the warp bit even though it is to be
  1049. taked out and changed shortly - and hadn`t spotted a bug for ages. Needless
  1050. to say he found one - the pacman was clearing the screen and nothing was
  1051. happening due to a variable being repeated that i hadn`t spotted. I`ve now
  1052. fixed that to, and have definetly decided I like the idea of other people
  1053. playtesting my code, as they always find things wrong that you miss. I am
  1054. letting him loose again tomorow, and I want to get some input on how he
  1055. thinks it should be improved.
  1056.     Final note of the day is about the title screen music. I have just
  1057. realised - after 14 days of having it running in the background of my game -
  1058. that it is not True-Faith by New Order. It is Blue Monday by U2 and I am
  1059. currently feeling like a right dickhead. Some programmer, huh. Doesn`t even
  1060. know what music he is using. I might write my own tune for the game as well.
  1061. I have a high score table piece at the moment, but I am thinking of using
  1062. ing track
  1063. instead. Should be interesting, as I have already said, I am not very good
  1064. at transcribing music from my head into Protracker.
  1065.  
  1066. Day 19: 13th June 1993.
  1067. -----------------------
  1068. Had a major strip today (oeerrr, misus) and shortened the code a bit. Also
  1069. did a little tidying up and rearanging so that the bits of code I still need
  1070. to work on are placed at the end of the listing so that I can get to them
  1071. quickly. Still a lot more work to be done in that department but I can`t
  1072. really get into it as I have to put in the rest first. Looking over my list
  1073. of bits to implement, I decided that the power pills and gobble baddies bits
  1074. would have to wait until I got the baddies working properly. That left just
  1075. the end of level animation that I could have done if I was feeling really
  1076. creative, but I decided to stop dawdling, and with a heavy heart I started
  1077. once again on the enemy inteligence bits. God, I wish I hadn`t. This has now
  1078. become the most major stumbling block in the entire saga and it is really
  1079.  down. I just cannot proceed any further without it working better
  1080. than it is, and I am really trying to knuckle down and get it up and
  1081. running. Needless to say I still haven`t succeded and I am to stuborn to give
  1082. in and settle for what I already have. Back to square one next session, and
  1083. yet another rewrite. Not happy.
  1084.     Anyway, on a happier note, I got Desert strike yesterday and it is
  1085. brilliant. That`s one reason why I didn`t do any programing yesterday. By
  1086. the way can anyone lend me twenty bucks as there is a great book on Amos on
  1087. sale in my local bookshop. No. Oh,well,maybe I can sell this game to someone.
  1088. Can you see it: For sale. Pacmans return. Sorry no baddies but the game is
  1089. priced at budget level to reflect this. Offers to etc, etc, etc. Must be a
  1090. market out there somewhere. Still, I doubt if the book would be any help to
  1091. my current project and I can always buy it with next weeks wages. Patience
  1092. is not my strong point.
  1093.  
  1094. Day 20: 16th June 1993.
  1095. -----------------------
  1096. ay from the game, call it my days off.
  1097. Did another major attempt at the inteligence on the 14th but failed yet
  1098. again, so I decided that it wasn`t worth mentioning. Yesterday I spent all
  1099. day Go-kart racing up in Reading with some workmates, and all evening in bed
  1100. with a severe case of sunburn. I wouldn`t have minded but I didn`t win the
  1101. racing. Would you believe I came second in three out of four of my qualifying
  1102. races, and I stacked the bloody cart on a tight corner in another race and
  1103. did not finish. That left me one point short of qualifying in the semifinals.
  1104. I was gutted. I don`t think I did my car tyres much good either, when I took
  1105. my Capri in excess of 100mph down the M4. I hope to do better next time,
  1106. anyway.
  1107.     Enough of that, what about Pacman. Well, most of this morning and
  1108. early afternoon has been spent on research. Research? you may ask. Well,
  1109. since I can`t get the right routine myself, I am digging up various Amos
  1110. programs and also reading the old books of computer listings, trying to find
  1111. f a similar nature, to see how they overcame the problems of computer
  1112. inteligence. I`ve spent about an hour editing and reprinting a text file
  1113. from Amiga-computing covering about a years worth of their Amos column and
  1114. the entire breakdown of their version of Pacman to see how they did it, and
  1115. I am hoping to have a proper dig through that later on before having another
  1116. crack at it. Also on the positive front, I think I have found a way of 
  1117. getting the maps into memory with the main game. I`ll have the twenty maps
  1118. loaded with the game, and the option to load the custom ten from disk which
  1119. had been previously saved with the editor part of the program. I am going to
  1120. have that as part of the game for definite now. Of course I will have to
  1121. alter it so that you don`t get to edit the main screens as well, else it
  1122. will mean reloading the entire game if you mess them up. That way the editor
  1123. usage is just optional, because not everyone is going to want to use it,
  1124. are they? Now is the time for some reading.
  1125. g by in the middle of programing to write this short bit.
  1126. The inteligence is almost working. Incredible but true. I am finally 
  1127. getting somewhere. I am currently working it by these two simple rules which
  1128. seem to be the same rules everyone else uses. Well, why should I change a
  1129. tried and tested formula.
  1130.  
  1131.     If pacman is above monster then move baddie up else go down
  1132.  
  1133.     If pacman is left of ghost then move baddie left else go right
  1134.  
  1135. It seems to be working although there are a few glitches I have to fix and
  1136. polish up before I can call it finished. At the moment the baddies are 
  1137. sometimes cheating by moving diagonally through walls. Expect some real
  1138. progress when I next make an entry.
  1139.  
  1140. Later.
  1141. ------
  1142. Alright, I lied. I`m not quiet there yet. Been working on it for a fair bit
  1143. of the afternoon, but it is still not hanging together. Some more thought on
  1144. it while I am away from the computer will probably help again. Also took a
  1145. while to put in a test mode into the game. What`s that? It`s basically a
  1146. ther one or zero at the begining of the listing so that
  1147. if I am testing it will bypass a lot of stuff - such as the title screen and
  1148. music, as well as loading up a screen from memory straight up instead of
  1149. loading and drawing from disk which is so slow and irritating when you are
  1150. trying new routines and want them up and running quickly.
  1151. Finally got this up and running - after much fiddling - because as I am now
  1152. spending so much time getting the baddies working properly, I need the
  1153. program running quickly so more time is thinking rather than waiting. I did
  1154. a little more tidying up today as well. That`s it.
  1155.  
  1156. Day 21: 21st June 1993.
  1157. -----------------------
  1158. I think I`ve lost a day here somewhere. I could have sworn a wrote a little
  1159. entry after the 16th just to say that I was going to get away from the Amuga
  1160. for a couple of days and rethink the whole thing through, but it seems to
  1161. have dissapeared. I`ll bet I tried to save this text to Df1:, which is a bad
  1162. for some stupid
  1163. reason. Anyway, for a couple of days (four to be exact) I have left the code
  1164. totally alone, and have been plotting and planning in my head instead.
  1165.     The problems I have been having with the computer inteligence parts
  1166. of the game are probably quiet common, and I have undoubtedly been tackling
  1167. them in the wrong way. Any game which has you against an enemy (about 99% of
  1168. them, I should think) should be approached with a clear set of rules that
  1169. define how the opponent should play, and its actions in relation to your own.
  1170. This has probably been my most major mistake in the whole exercize. Impatient
  1171. as ever, I was cocky enough to think I could just jump straight into the code
  1172. and knock in a routine of the top of my head. Brave thoughts indeed, and I
  1173. was probably doomed before I even started; nobody is that good. I bet the
  1174. professionals don`t even do it this way. Suffice to say that a valuable
  1175. lesson has been learnt here, and I have most certainly not given up, despite
  1176. nearly a weeks abscence.
  1177. simple rules I came up with in an early part of the diary were
  1178. a definite step in the right direction, but their format is one I am not
  1179. happy with. It can hardly be called artificial inteligence, can it? And this
  1180. is what the last few days away from the keyboard have been all about. I have
  1181. been looking upon this from a totally new outlook and have come up with the
  1182. following idea.
  1183.     If I was to put myself mentally into the enemy ghosts shoes, how 
  1184. would I track down the pacman. Simple really. I`d nip off in any direction I
  1185. could go in, changing my direction whenever I encountered a wall, like the
  1186. ghosts do so far, but then, and this is the "big then", each time I got into
  1187. a square with multiple directions leading off, I would stop, look in each
  1188. direction, as far as the nearest wall, and, if I spotted the little yellow
  1189. bleeder, I`d rush down that way after him. Of course if I didn`t spot him,
  1190. then I would probably just roll a mental dice in my head (a random number
  1191. an even number I`d go in the
  1192. new direction, else I`d just carry on whichever way I was going, and hope to
  1193. spot him at the next junction. I`d be very unlikely to back-track, so I
  1194. will probably make sure the ghosts couldn`t do that. Then, problem solved.
  1195. The baddies would always be moving, and they would be about as inteligent as
  1196. a human (well, me at least) would be if forced into the same circumstances.
  1197.     Although ideal in its present form, this idea has yet to be coded,
  1198. and another aspect has yet to be considered. The last thing on the ghosties
  1199. mind when pacman has just swollowed a power-pill, would be to hunt him. A
  1200. better idea, for them at least, would be to be going in the opposite
  1201. direction as far as they can run with no feet. Okay, so the routine for
  1202. pacman eating the powerpills is not fully coded yet, but it is going to go
  1203. in sometime, so some sort of addition to the inteligence to take this into
  1204. account should go in while the routine is being written. A major reshuffle
  1205. lled for here, as it is time to implement
  1206. some sort of data-structure and organisation into the routine before it goes
  1207. hopelessly out of control - which it has done several times so far - and I
  1208. lose track of what anything does. The format for this I have written below.
  1209.  
  1210. Ghost (gh,x,y,b,st)
  1211.  
  1212. Alright it doesn`t look much, but let me explain.
  1213.  
  1214. Ghost is tha variable name, and gh is the number of the ghost (1-3 so far,
  1215. although I am thinking about bringing number four back for the show).
  1216. X and Y are the x and y positions of the ghost on screen. Surprising, huh?
  1217. B would be the ghosts bearing (1=up,2=down etc), ie the direction it is
  1218. currently moving in.
  1219. ST would be its current status. In other words: 1=chasing Pacman, 2=Run like
  1220. hell `cause Pacman just ate an acid tablet. (yes, it`s true. Pacman is a
  1221. junkie.)
  1222.  
  1223. Of course, when I write the routine - as I am shortly going to atempt to
  1224. do - some of this might be changed just a little. I`m thinking along this
  1225. ough when I am
  1226. programming, nothing ever goes to plan, so the whole thing might need to be
  1227. totally different in order to work. We shall see.
  1228.  
  1229. Later.
  1230. ------
  1231. Not much luck here. Rewrote the routines to check each direction up to the
  1232. nearest wall, and lock onto that way if Pacman is spotted but they don`t
  1233. work too well. At the moment the ghosts see pacman if he isn`t there, and run
  1234. off in a different direction all together. To make matters worse, if the
  1235. ghosts stop moving which my routine allows at the moment, then the bloody
  1236. game slows down to a snails pace. Most annoying. I still have quiet a way to
  1237. go with this part of the game. So what`s new? I remember writing down my
  1238. first few lines of text into this diary what seems like a long time ago:
  1239. I couldn`t ask for an easier introduction into Amos. Famous last words and I
  1240. am definitly biting my tongue. Maybe I should have chosen a better subject
  1241. for a game, after all. I always thought programming a good game was adding
  1242. ng days writing a part which
  1243. you can`t do without, and is just not coming together. Until next time.
  1244.  
  1245. Day 22: June 22nd 1993.
  1246. -----------------------
  1247. Well I came back again today, and lost the fight, as is becoming usual. But
  1248. having said this, all is not lost. I rethought the ghost movement routine
  1249. yet again - I think I must have used almost every trick in the book by now -
  1250. and came up with a shorter routine using the dreaded if-then and else 
  1251. conditions, and repeats. I can think of this as a breakthrough in a way,
  1252. even though the routine doesn`t work yet, because the way I have used them is
  1253. right, and for the first time, I have actually got to grip with how they
  1254. work. Let me explain for those of you who are confused:
  1255.  
  1256. Take the following Amos code.
  1257.  
  1258. Input "What is your name?";N$
  1259. If n$="Tony" Then Print "The boss": Goto END
  1260. Print "Hi there ";N$
  1261. END:
  1262. Stop
  1263.  
  1264. Now use the if then else structure.
  1265.  
  1266. Input "What is your name?";N$
  1267. If N$="Tony"
  1268.   Print "The boss"
  1269.   Else Print "Hi there ";N$
  1270. End If
  1271. Stop
  1272.  
  1273.  crude example, but that`s the best I could do off the top
  1274. of my head without getting to techy. It doesn`t save much space or make the
  1275. program look really neater, but you can probably get the idea of how many
  1276. labels you can save on, and how much neater and organised a program could be
  1277. if this method was employed all the way through. This will have to be done
  1278. to all my code once the game is finished anyway, as I`ll probably save a
  1279. whole heap of space, and be able to decither the whole thing if I look at it
  1280. again, after being away for a few months.
  1281.     I`ve done some more fiddling with the testing mode now. Remember how
  1282. I said that I have a variable called test set when the game first runs, and
  1283. if it is one then the game is in playtest mode, so a lot of the unescesary
  1284. stuff should be bypassed. Well I`ve built a bit on that today, by adapting
  1285. the code so that the score is no longer shown etc - I`m hardly interested
  1286. when I am trying to debug the game - and other info is shown instead, like
  1287. n and friends etc as well as other stuff to show
  1288. results of the inteligence routine as I adapt it. Hopefully this will aid me
  1289. in my debugging.
  1290.     It looks bad at the moment with the ghost movement routines not going
  1291. anywhere, but I am still in there fighting. If nothing else, I`ve learnt a
  1292. lot more about Amos and artificial inteligence since starting it, and I am
  1293. not going to give up so easily. It`s going to be back to paper time again,
  1294. after finishing todays diary, and hopefully with the new stuff I have learnt
  1295. I can throw away my last piece of paper with the old routine on it that looks
  1296. nothing like what I have now, and file away a working one in my development
  1297. file instead. Having said that, I`ll probably frame it, if I can pull it off.
  1298.     Oh,yes, did I mention my development file? It`s great idea of the day
  1299. time again. I have put all my notes into their own section of my computer
  1300. file, along with other associated articles and routines, which is my pacman
  1301. ut and put that in
  1302. there as well as a copy of this diary, so I can look over all this again, and
  1303. wonder why I bloody bothered. Just kidding. It will be good to look back on
  1304. it though; especially when I am writing other games by then, and avoiding
  1305. all the mistakes that I made with writing this one.
  1306.     Anyway, on a slightly more optomistic note. Bye,bye....
  1307.  
  1308. Day 23: June 23rd 1993.
  1309. -----------------------
  1310. Another day of intensive thought. Been thinking along the lines of resetting
  1311. all the ghost movement routines to move via a complex data structure. And
  1312. all because the ghosties loved to chase pacman. This is going to be a lot of
  1313. fun. Not !!!
  1314.  
  1315. Day 24: June 24th 1993.
  1316. -----------------------
  1317. Looking at this diary and recapping over the last couple of weeks, I`ve 
  1318. come to the conclussion that this inteligence routine has got to be the 
  1319. hardest piece of code I have ever tried to write. Well, it speaks for itself
  1320. really. Can you imagine how senile I would be right now if I had been trying
  1321. stead of a nice user-friendly language like
  1322. Amos. I`d have no hair, and my ashtry would be overflowing into next doors
  1323. garden. Seriously though, when I finally get it there - and despite my
  1324. constant bickering, I am much closer now - I`ll probably be celebrating into
  1325. next year. In a way I am glad it has taken so long because I have learnt so
  1326. much about structured programing and short cuts etc that anything I write in
  1327. the future is going to be much better than the basic sort of games I used to
  1328. write on my old Vic-20 and C64 which had very nice title screens etc but you
  1329. would only play them once or twice as they had no real drive or clever
  1330. computer inteligence etc. I never used to be able to write a game that would
  1331. be just the right sort of challenge. They used to end up looking like demo`s
  1332. which I ended up doing most of the time instead as they were easier to
  1333. write and didn`t take much design work which I never had the patience for.
  1334.     Looking at myself critically, I have now realised that I never had
  1335. ce when programing at all. This is why I used to end up with so
  1336. many unfinished projects. I would lose interest as soon as I hit a stumbling
  1337. block and go onto something else, and I would almost never write anything on
  1338. paper before jumping into the programing. This is why most of the games and
  1339. programs I did actually finish looked either like blocks of code just put
  1340. together, or flashy title screens with the game put in as just an
  1341. afterthought. I have decided to rewrite the one game I did do sucesfully
  1342. on the Vic-20 onto the Amiga after I have finished this, as this was - to
  1343. me at least - rather good. I wrote it off the top off my head back then - it
  1344. must be about eight years ago now - and it had no real programing problems
  1345. as the whole game was made of easy to write subroutines. I`ll enhance it for
  1346. the Amiga of course; who wants Vic-20 style graphics now.
  1347.     This said it`s time to look at Pacman again.
  1348.     I have rewritten the enemy inteligence to use a complex data
  1349. ly shorten the main routine
  1350. to a readable amount which will aid me in debugging and adding to it a little
  1351. later when I need to make the ghosts run away from you. The thing uses all
  1352. sorts of if-then jumps like I wrote about a couple of days ago, and when I
  1353. have done some more debugging, will be the method I eventually use. It seems
  1354. to work well in theory, although the version I have keyed in at the moment
  1355. does not run according to plan. I have so many notes on this subject now, 
  1356. that I am just going to bear with it and keep changing as nescesary until it
  1357. is finally right. I`ve just about had enough of all these re-writes. To
  1358. explain this code in simple words: I have made pacman look in each direction
  1359. when he is ready to move again - ie: his animation phase is over and he has
  1360. matched his block pixel movement - and mark down if he can move in any of
  1361. the directions. Tomorow I will change the whole routine a little bit so that
  1362. he only looks to the left and right of the way he is facing, as I can`t have
  1363. ackwards and forwards all the time, unless Pacman is behind him
  1364. of course. He won`t always change direction, if he can move either way though
  1365. because that wouldn`t nescesarily happen in reality, would it? This might
  1366. sound a little techy now, but basically he`ll turn round if he hits a wall,
  1367. spots pacman in another part of the maze - ie: the x and y cordinates match
  1368. and there is no walls between them, so that the ghost would see him in 
  1369. reality (nothing like being true to life) - or just turn if their is a blank
  1370. floor to his left or right, and he feels like doing so. This should make the
  1371. whole thing work smoothly, and in theory the ghost should follow pacman even
  1372. if he moves out of the ghosts sight, as he locked onto pacmans last position
  1373. and is going that way himself. Of course you could avoid him, but you`d need
  1374. two changes of direction in rapid succesion without him seeing which way you
  1375. headed the second time to get away with it. Not forgetting that there are
  1376. and you have to avoid them
  1377. seeing you as well.
  1378.     The routine for looking in each direction is rather clever, if I do
  1379. say so myself (and I do) - as it is one routine to look all four ways until
  1380. it sees a wall, and change the ghosts direction if it matches cordinates
  1381. with pacman before the wall is encountered (in other words it see`s you). It
  1382. does this by looking at the mapdata arrays in block increments decided by a
  1383. bearing data structure. How the hell do I explain that one.
  1384.  
  1385. X  Y
  1386. 0  -1
  1387.  
  1388. that is for up.
  1389.  
  1390. X  Y
  1391. -1 0
  1392.  
  1393. that is for left.
  1394.  
  1395. Are we learning yet? Thought not. Let`s try and make it a bit clearer.
  1396.  
  1397. X=Bearing(1,0):Y=Bearing(1,1)
  1398.  
  1399. if x = 0 and y=-1 then it is looking at the block x position the same as
  1400. ghosties and the block y position the same as ghosty -1 Ie the square above
  1401. his current position. Sorry if you are still confused, but just because I am
  1402. a programer, doesn`t mean I`m a teacher. 
  1403.     For the educated, this means I am able to search in all four
  1404. check each way. As I
  1405. said I am going to change it to three ways tomorow to make the ghosts move
  1406. better, and not so clockwork.
  1407.     At the moment - for the interested - they are just going over the
  1408. same four squares clockwise. Even if pacman is within sight of them. I think
  1409. the problem is with my routine rather than the way it is designed, so I
  1410. hopefully should sort that little glitch out as well.
  1411.     On a lighter note, I was tempted to put in another sprite today
  1412. and use it to show pacman pokeing his tongue at the ghosts each time they
  1413. go past him. This is silly really but I just thought it would be a reminder
  1414. to myself to sort the inteligence out. Who says programers are all serious
  1415. guys, huh? Maybe I`ll do it anyway in the game. I have to have the fire
  1416. button do something, so this could do. And of course the baddies would go mad
  1417. and double their speed until you pressed it again. Probably make it give you
  1418. double points for each dot gained while the ghosts are in I-am-a-pissed-off-
  1419. The idea was just a joke. Wasn`t it?
  1420.     See you in the next thrilling instalment. Hopefully with some clever
  1421. ghosties. Sounds like a new cereal, doesn`t it?
  1422.  
  1423. Day 25: June 27th 1993.
  1424. -----------------------
  1425. Alright, so I took another couple of days off. Justified, because, as usual,
  1426. the game was in the back of my mind nearly all the time as I tried to think
  1427. out some more routines. Bit of a waste really as nothing else is to be done
  1428. until the ghosts move as they should. Well move how I think they should;
  1429. after all real ghosts would walk through walls wouldn`t they. I`m writing
  1430. this text before actually doing anything else with the game so the movement
  1431. routines haven`t actually been adapted yet. But I`m going to in a minute.
  1432. Honest. Spent all day yesterday running around a wood like G.I Joe, playing
  1433. paintball. Great fun, but very expensive on the wallet for Ammo. I must have
  1434. used more shots than Arnie in Terminator II. Spent about 60 quid in total,
  1435. multiple
  1436. bruises from the enemy. Did quiet well though, although some of my actions
  1437. could only be called suicidal. I wondered at the begining why everyone let
  1438. me lead the team into the woods. It turned out I was bait, as the enemy
  1439. snipers would logically shoot at me first. I did some brilliant dives and
  1440. acrobatic feats I didn`t know I was capable of, though. Many an enemy soldier
  1441. was shot by a brave and foolhardy charge by myself into their teritory. I
  1442. even got through some multiple barrages to pick off men without being shot
  1443. at all. Most of the time, I got about five pellets in me, though.
  1444.     Anyway, back to our story. Although I am thinking of trying to 
  1445. emulate the feeling of playing paintball into the computer somehow. I don`t
  1446. think anyone could get it quite the same. Back shortly, after I`ve adapted
  1447. the ghost moving routine.
  1448.  
  1449. Later
  1450. -----
  1451. Nothing much to add,really. Had another terrible day. Ripped out the whole
  1452. routine again and again. This game is really getting to me now. Came close
  1453. le disk, diary and all. Decided that it is probably in
  1454. my best interest to stay away from the code for tonight. I don`t quiet know
  1455. what to do now. I`ve thought and mapped the whole thing onto paper too many
  1456. times to mention, and I can`t get the thing hanging together. Every single
  1457. different way I have tried to program around the problem has got me nowhere.
  1458. Sooner or later it`s going to drive me totally up the wall. I need some
  1459. severe inspiration but I don`t know where I am going to get it.
  1460.  
  1461. Day 26: June 28th 1993.
  1462. -----------------------
  1463. I was going to start today`s installment of the diary by saying something
  1464. along the lines of "Here we go for another atempt which will probably fail
  1465. at sorting out the ghost movement", but that would be despondent. The only
  1466. way to aproach this problem is with a positive atitude, so that is what I
  1467. intend to do. If I still can`t get it right, then I`ll just keep trying to
  1468. do it again, until I do. There`s no point in just forgetting about it, or
  1469. ent is essential to the gameplay, and the
  1470. project is undoubtedly a failure otherwise. Anything else approached in the
  1471. future is likely to need the same sort of thing so I have to get it right
  1472. now so that I can repeat it in future. Who wants disks full of unfinished,
  1473. or poorly programmed games?
  1474.     I only have a short time to work today so I`ll just work on the
  1475. ghost movement routine alone. Hell, I haven`t worked on anything else for
  1476. the last couple of weeks anyway, apart from the programmers test mode which
  1477. will not be in the final game anyway. Who is going to be interested in 
  1478. knowing things like the x and y positions of pacman etc anyway?
  1479.     Just recently I have been writing routines for the game with an
  1480. objective of saving memory by making them as short as possible, which could
  1481. be where I am going wrong here. If I just wack in a great chunk of code to
  1482. do the whole thing properly, and then adapt it afterwards then I might have
  1483. better results. The program is going to be stripped down in a major way when
  1484. nished writing it anyway. And, hopefully, it will be compiled and
  1485. crunched when done so that the whole code is in one smallish file at the
  1486. end. Obviously some work will have to be done on the way screens are stored,
  1487. but I am taking this into account, and I have a way of storing all the info
  1488. into a bank with the main program, although I am not going to program it in
  1489. until I have the ghost movement up and running first. As I said, I want to
  1490. have the map editor in with the game, so some severe code shortening will
  1491. be called for, as well as a clever data storing routine so that map data
  1492. will not use up so much room. I will probably have my work cut out in this
  1493. department to. Right, enough of the diary, and on with the programing.
  1494.     Not even half an hour later and I`m back. I`ll bet you are expecting
  1495. me to say that things are not working out. Hah, fooled you. Things are now
  1496. looking very good. I wish I had more time to carry on further but I have to
  1497. sk. Well,
  1498. I had been having problems with the map search routine - you know, the bit
  1499. that let the ghosts check each direction up to the nearest wall and see if
  1500. pacman is there. Well, no more problems; this bit is working great now, and
  1501. the ghosts no longer move through walls etc and stop the program with all
  1502. sorts of out of range errors and the like. Now it is the routine to make them
  1503. move about at random while they are not after you. This bit should take a
  1504. bit of work as well, as I don`t want them to just keep going over the same
  1505. old ground if the player keeps out of their way. These guys have to go out
  1506. and look for you, and this bit of inteligence is what I am going to implement
  1507. next. By the way, I was right about the longer code to get the job done
  1508. properly. It is quiet a bit longer than the old search routine which was
  1509. very economical, but didn`t work properly. I`ll try to convert it later when
  1510. the rest is in and working. I`ve also put some remark lines in to myself so
  1511. t`s amazing how much I forget when I
  1512. don`t do anything with the game for a couple of days.
  1513.     Back again. Not much luck, and I haven`t got the time to fiddle to
  1514. any real extent. I think I am finally close though. Can you wait for the
  1515. next gripping installment? Probably. I should think you are reading this
  1516. much faster than I wrote it. Next time? Perhaps.
  1517.  
  1518. Day 27: June 29th 1993.
  1519. -----------------------
  1520. Right then, do you want the good news, the good news, or the bad news?
  1521. Good news? Ok, then, there is no bad news. What does this mean? I hear you
  1522. ask. Well, this persistent fellow has finally cracked it. Ghosties everywhere
  1523. and all after your blood. I`ve been on it for about three hours on todays
  1524. session, and finally, after the usual frustration, the code came together.
  1525. A little tweaking is still needed. The ghosts aren`t quiet inteligent enough
  1526. yet. But this is not a major hardship - or another two weeks of my grumbling
  1527.  - as I know exactly how to do it. Needless to say The ghosts now go straight
  1528. spot you, and they will actively search the maze for you if
  1529. you are cunningly avoiding them, and what`s more - and this is the best
  1530. bit, they won`t stop moving. Not like they used to and slowing the whole
  1531. game down for some stupid reason. The final working routine is not quiet as
  1532. large as I feared, and a lot of reworking can be done to shorten it which I
  1533. will do as soon as I have improved the inteligence just a little more. I
  1534. also found another couple of bugs with the pacman joystick reading routine
  1535. which I never noticed before and have now put right. The little chap could
  1536. move through walls if he was moved diagonally, even though he did not stay
  1537. in them. I`ve also improved the movement of pacman so he follows the joystick
  1538. direction instinctively. Don`t worry if you don`t get what I mean. It`s 
  1539. probably something you`d never notice when playing the game, unless it was
  1540. not there, and it is just usefull to the players with non-micro-switched
  1541. tioned
  1542. if they can`t tell. A bad explanation maybe, but it doesn`t really need to
  1543. be harped on about, and it works extremely well.
  1544.     I was going to stop for now and leave the reworking until later,
  1545. but I have the bug now - I`m glad the game doesn`t though - and I am itching
  1546. to wrap this bit up. Now that the inteligence is nearly finished, I am now
  1547. starting to think ahead, and plan the rest of the game that has to be
  1548. written. The powerpills come next - Shouldn`t be to hard as I`ve based most
  1549. of my routines around them already. Afterwards, the tidying up, some play
  1550. testing, removing all the excess code that`s got in somehow and no longer
  1551. needed, putting the whole thing back together again - I`ve disabled all sorts
  1552. of stuff and put in loads of bypass flags for test modes etc - and then the
  1553. map-data etc has to be stuck with the code along with the editor and made
  1554. into a single file. After this, the final debugging and getting some more
  1555. people to test it, before I can finally call the thing finished.
  1556. ny more hitches ahead now, so the game could probably
  1557. be set a deadline. I`m going to aim for late tomorow - that is without the
  1558. extensive testing - as I`m that confident (don`t forget that a lot of the
  1559. nescesary code was being written while I was stumped by the Ghost routines)
  1560. but it probably will not be quiet that soon.
  1561.     Ok, then. Back to work.
  1562. Later
  1563. -----
  1564. After a lot more work, I have become a very happy man. The computers method
  1565. of moving the ghost now works fine. A bit of random movement was called for
  1566. and a little tweaking of the directions so that the ghosts don`t stay in the
  1567. same area of the screen all the time. The whole thing works great now, and
  1568. I am very happy with it. Now I can forget about it and concentrate on the
  1569. rest of the game.
  1570.     I put in a little cheat mode for myself so I could test everything
  1571. properly, and it all seemed fine.
  1572.     I have now come to the end of my longest session on this game at any
  1573. one time, and I am well chuffed at what I have achieved. Not only did I get
  1574. and running, but I also put in the routine to activate the
  1575. power pills as well. When Pacman eats one of them the monsters flash, and a
  1576. subtle noise plays in the background so that you know it`s monster munch
  1577. time. The monsters, when gobbled, change into a points indicator briefly
  1578. before being zappped back to their base, and Pacman gets a short reprieve.
  1579. All the sound effects and animation routines for this part of the code have
  1580. been implemented as well, and, just to round it off, I tweaked the Ghost
  1581. movement routines to get the Ghosts staying well out of Pacmans way if he
  1582. has taken a power-pill charge. It`s amazing how easily I did this now that I
  1583. know what I am doing.
  1584.     A very constructive day. Tomorow I want to recode the map routine so
  1585. that they are all in memory with the program, then I can rip out the test
  1586. mode - my main reason for this was so that I didn`t need to load from disk
  1587. each time I ran the program - and put the map editor in with the game. I am
  1588. ough the ones I have now
  1589. are adequate for their purpose. No progress on the music front however, so
  1590. I think I`ll probably leave this as it is.
  1591.     I am going to have to rework all the scoring so that the player gets
  1592. rewarded well enough for his efforts. Ten points for guzzling a Ghosty
  1593. hardly makes it worth the effort, does it? Some time soon, I have to hit the
  1594. map editor so that I can set up some new screens. At the moment I still only
  1595. use the default, as I have been to lazy up `till now to bother drawing any
  1596. more. I have made the Ghost routine work around any sort of screen so I can
  1597. probably come up with some really freaky designs.
  1598.     Also needed is the warp routine rewrite. I want to have gaps anywhere
  1599. I like, so the old method which lets you warp in just one place will have to
  1600. go. It`s a shame really as I was well proud of the routine I wrote for that.
  1601.     A better screen for when you clear a level is probably called for, as
  1602. well as a flashy screen fade. I can fade out the palette perhaps. We`ll see
  1603. ll probably start the rewrite as well, if all goes according to
  1604. plan. Maybe even shove it through the compiler if I get that far.
  1605.     Until next instalment.
  1606.  
  1607. Day 28: June 30th 1993.
  1608. -----------------------
  1609. First thing this afternoon was writing a small program to read all the map
  1610. data for each screen into memory and store it into bank 2. The code for this
  1611. is now written and I am running it in the background while I write this.
  1612. Once I save the bank, I can load it back into the main program where it will
  1613. stay with the rest of my data. The problem now is going to be adapting the
  1614. game code to use this and ripping out all the load data routines. Hopefully
  1615. this improvement will speed up the transition period between screens.
  1616.     Just have to wait for the program to finish now. You wouldn`t believe
  1617. how long it takes to read in each bit of data and store it, even though the
  1618. bank is only 4320 bytes long.
  1619.     Back again. Not much luck as yet. This is much more difficult than
  1620. I originally thought. Amos has just choked on the conversion process and has
  1621. crashed. Most frustrating. I`ll have to look over the routine again and get
  1622. it right. What a pain.
  1623.     Alright. All running smoothly now. Got the map converter program set
  1624. up correctly, and now I can just forget about it until I design the new
  1625. screens. I never realised how much development and other utilities I would
  1626. need to write just to get this game running the way I want it to. When I
  1627. finish editing the main game to use the new map format, I am going to have
  1628. to go over my development disk again, and get rid of more unescesary stuff
  1629. so I have room to store all the files.
  1630.  
  1631. Later
  1632. -----
  1633. Right,that`s the space on the disk sorted out. Had to get rid of some of
  1634. Amos` extensions that I wasn`t using so that I had room. The game will be
  1635. compiled from my development disks rather than the source disk anyway, so
  1636. the compiler wasn`t nescesary at the moment, and I made a bit more space.
  1637. When the code is compiled, I`ll just have that on one disk - self booting -
  1638. and keep all the banks on it as well, so they can be accessed from Amos. The
  1639. diary will probably stay on their as well as a program to read it.
  1640.     Done a lot more fiddling to finally get the screen map data sorted
  1641. out before it was finally working. Had to compromise a little bit and load
  1642. in the data at the start of the game as Amos doesn`t like the user playing
  1643. with banks unless they are reserved first, and once I do that all the data
  1644. is cleared. Catch 22. So a brief pause when the game is first run is 
  1645. the only catch, and it only happens when it is first run. I`m still looking
  1646. into ways around this.
  1647.     Spent the last couple of hours working through the program and
  1648. sorting out lots of those little problems which you notice when you are
  1649. writing the game but can`t be bothered to change as you are doing something
  1650. else. Did a little reworking of some of the code in a view to shortening the
  1651. whole lot eventually.
  1652.     The game works closer to the arcade version now, in that the ghosts
  1653. can only be eaten once on each pill rather than letting Pacman gobble over
  1654. and over until the pill wears out. Not quiet there yet as the routine just
  1655. works out if you have eaten three monsters, not which ones. So the Pacman
  1656. could pick on the same one if he feels like it. Have to change that next
  1657. time. Also got the scoring working a little better and updated the options
  1658. and high scores screen so that I have some space to put in whatever else I
  1659. am going to need. The arcade movement will have to go back in (god knows why
  1660. I took it out in the first place) and maybe I should put in the Thick &
  1661. Smart mode again. I think I can adapt the inteligence for this little tweak.
  1662. I`ll just tell it to ignore pacman if it sees him in front of a wall and
  1663. play the random search way. What a waste. I spend two weeks recoding and
  1664. recoding the search part, and the amatuer games players won`t even use it.
  1665. Such is a games writers life. It makes my mind boggle some times about just
  1666. how smart some games are actually programmed, and nobody notices it. Not that
  1667. this is brilliant, by any means. It came together more by persistence than
  1668. anything else. The final tweak of the day was for the skill level, which was
  1669. letting the ghosts move faster depending on the level, but not Pacman,
  1670. leaving the player totally helpless if they spotted him. Then again they spot
  1671. him pretty quickly now anyway, thanks to the clever random search routine
  1672. which I am so proud off. This has just got to be used again.
  1673.     Maybe a sequel. I don`t think so.
  1674.     Now that development is coming to a close - just a lot of touching
  1675. up and some screen designs to go now - I am starting to think on future
  1676. projects. I have lots of ideas in mind, including adapting one of my old
  1677. games from Amigabasic - remember that bitch - which I have already started,
  1678. as well as the one I mentioned earlier on in the diary. When I finish this,
  1679. I will have to decide which one to do and not get sidetracked as I nearly
  1680. did with this one, and start coding two at the same time. A bad idea, as none
  1681. of them ever get finished, I guarantee it.
  1682.     We`ll see. I don`t know if I`ll be doing anymore later today - if I
  1683. don`t then I have failed my deadline - but for now I`m taking a little rest
  1684. as I`ve decided I definitely deserve it. I`m hoping to get some playtesting
  1685. done on this later on if possible.
  1686.     By the way, remember what I said about wanting to emulate the feel
  1687. of playing Paintball in a computer? Well, I thought it couldn`t be done -
  1688. certainly not by me anyway, but someone has proved me wrong. I`ve just played
  1689. a demo of Cannon Fodder by Sensible software, and it`s brilliant. Try it and
  1690. see. I love it, and can`t wait for the full game.
  1691.  
  1692. Even later still. And counting.
  1693. -------------------------------
  1694. Phew, I haven`t used my computer for hardly anything else all day. I nearly
  1695. lost all my game code just now, when Amos decided it wanted to do funny
  1696. things to screens etc, and everything was going haywire. I`ll have to look
  1697. into the memory side of things, as I had no other tasks running, and usualy
  1698. the diary is in memory as well, so I can`t think what was going wrong.
  1699.     Anyway, I have designed ten screens for the defaults - I think I`ll
  1700. leave the custom ones for the user - and got to work checking the warp
  1701. routines - much debugging later and they basically work - including the
  1702. ghosties doing it as well, although they don`t like doing it much - although
  1703. I`d like to get it so that the bobs move off screen. My animation won`t
  1704. be much use if I do it like that though. I`ll decide a little later which
  1705. way to use. Some of the maps have a few errors in - usually the ones with
  1706. warp gates in as a matter of interest - so I am going to have to find out
  1707. why and sort them out. I have also been tweaking a lot of the routines after
  1708. watching how the ghosts react to their new enviroment, but I am basically
  1709. happy, `cause they always get to Pacman in the end. I can`t really asess the
  1710. difficulty level of the game as yet because I have been using the infamous
  1711. programmers cheat mode, so that I could test the thing properly. I think I
  1712. will set the starting level up one though, as the gameplay is a little too
  1713. slow on the easiest level, and it can get quiet boring trying to clear the
  1714. screen. The levels work by adjusting the speed of the characters only at the
  1715. moment but I - and this is just my preference - prefer a faster game. The
  1716. screens I have designed are not exactly brilliant, but they work well, and
  1717. a lot of them set you different types of challenge, where you have to go to
  1718. lots of dead ends in harder levels and also play on a smaller screen which
  1719. makes it much harder, especially if there are no powerpills for that level.
  1720. I even took the mick a bit by sticking loads of power pills on some screens
  1721. and making them inacessable just to be annoying. Each screen will have to
  1722. be approached a different way, adding to the games long-term appeal, which
  1723. is what I wanted.
  1724.     Put pen to paper again to write up a final list of bits to go into
  1725. the game. It was quiet big actually, and it definitely means that finishing
  1726. today is out of the question.
  1727.  
  1728. 1. Pacman needs to be animated. (back to the sprite designer, methinks)
  1729. 2. End of level sequence needs improvement.
  1730. 3. Sound on/off option. Even I get irritated with the noise after a while.
  1731. 4. Screen drawing routines need to be loads faster. (unacceptable)
  1732. 5. Arcade mode has to go back in with thick/smart mode.
  1733. 6. Map designer has to be put in with game and option to access it.
  1734.     This means I am going to have to put the map designer, and the map
  1735.     bank maker into one file which does it all, and saves out the whole
  1736.     custom set.
  1737. 7. I have to do something about the movement of pacman. He looks a bit jerky
  1738.    at the moment - even on the slowest level where he moves 1 pixel at a
  1739.    time. Maybe I can solve this by only updating at the end of the gameloop.
  1740. 8. Code has to go through the major rewrite, where all the old stuff gets
  1741.    ripped out, and everything gets tidied up.
  1742. 9. Disk has to be set up for the compiled game, and all the source files.
  1743.    I`ll also want to have a print out of this diary and maybe the source
  1744.    code too.
  1745.  
  1746. That should be all, though I`ll probably come up with some more once I start
  1747. playtesting it on my friends, and playing myself without the cheat-mode so
  1748. that I can grade the difficulty.
  1749.  
  1750. Day 31: July 2nd 1993.
  1751. ----------------------
  1752. I hate working for a living. It really screws up my programing schedule. I
  1753. was unable to get into the game again yesterday due to the work comitment,
  1754. and I`ve spent most of today - my day off - taking all sorts of bits off of
  1755. my Capri. First of all I thought the brakes had gone, then Mr. nice RAC man
  1756. said it was the suspension, and now I find out it is my wheel bearings, and
  1757. the old ones are so shredded that I need to get a garage to get them off. I
  1758. can`t get the car down to one, so I have had to take off the brakes, 
  1759. suspension, steering rack and all sorts of other bits and bobs, so I could
  1760. remove the bits I need. Not an easy job, and my keyboard is covered in oil
  1761. and muck from my hands. Have to get the car on the road soon, though, because
  1762. it is a right pain, not having one.
  1763.     I have a few problems with the map conversion program which I have
  1764. to look into and sort out, so the maps are displayed properly. I am also
  1765. trying to fiddle with the screen update commands so that I can get the new
  1766. screens up quicker. If I omit the double buffer commands, then everything
  1767. works hunky dory, but the sprites all flicker like hell. I`m going to test
  1768. it all on the screen designer, as well as update it a bit, and see if I can
  1769. get that working better, before I implement it in the game. With a bit of
  1770. luck, I can get the game running smoother as well, by dictating when the
  1771. screen should update, rather than Amos deciding for me. We`ll see.
  1772.  
  1773. Day 32: July 3rd 1993.
  1774. ----------------------
  1775. National bothered day. Programmers personal joke.
  1776.     I finally fixed up the map editor and map-to-bank convertor program
  1777. to get it right and use compatible data. My big mistake really was using two
  1778. different ways of storing the map data. One method (the first one) loaded 
  1779. each of the screens of the disk and just displayed them. The other used a 
  1780. different file format to load them into a bank, and the conversion process
  1781. I used was choking on the two different types of data because I took short
  1782. cuts instead of updating both prgs to use the new format. Lesson learnt - it
  1783. was more hassle trying to sort it out, than it would have been if I had just
  1784. done the updating in the first place - and I have realised that short cuts
  1785. shouldn`t be used, as you very rarely get away with it.
  1786.     I also cracked the screen-draw routine. You could say I commited
  1787. hypocrisy here, as it is sort of a short cut I used. Instead of trying to
  1788. work out in great detail how to use the update and autoback functions - I
  1789. have no manual to work from so it is difficult - I just closed the game 
  1790. screen off and opened it again, so I just double buffered after the screen
  1791. is built. Remember the problem is with the double buffer command, which slows
  1792. everything right down, and I don`t know a way to turn it off. Anyway, enough
  1793. boring you, it works, and the player doesn`t die anymore of terminal boredoom
  1794. between screens.
  1795.     Spent a little while modiftying some of the screens based on what
  1796. I have realised from more extensive playing of the game, so the balance of
  1797. play is a lot better tweaked now. Also did a bit more stripping (Oeerr!) of
  1798. the main game code to adjust to the new screen system. No point in displaying
  1799. the text "Setting screen. Please wait!", when the screen appears almost
  1800. instantly, is there?
  1801.     With this screen update bit sorted out, the game is now totally
  1802. playable - ie: no error reports and game stoppages - and indeed I have been
  1803. playing it quite a lot, with the cheat mode on, working out the nescesary
  1804. improvements. I`ll have to start with the warp-gates, as I just can`t have
  1805. them like they are at the moment. It`s got to be like the arcade game, so it
  1806. is bye-bye to the little animation I got so fond off.
  1807.     Ha,ha. Just found a bug after extensive level testing. The skill
  1808. levels go up by one each time the player clears ten screens. Trouble is I
  1809. told it when to stop going up, but I let it go higher than it should, and
  1810. the ghosts are trying to update at a speed they can`t do. Result. CRASH!!!
  1811. Must remember to sort that one out this session.
  1812.  
  1813. Day 33: July 4th 1993.
  1814. ----------------------
  1815. Had a very productive session today. First stop was sorting out the routine
  1816. for the end of levels, so that the ghosts don`t overlap the maximum speed
  1817. they can legally move. That sorted, the warp routines were totally rewritten
  1818. so that all the characters move like their arcade counterparts. It took a lot
  1819. of fiddling with before I got it working properly, but, now it is working, it
  1820. is a definite improvement. I did more work on tidying up the front-end, and
  1821. resolving some of the glitches that I hadn`t noticed before. Put in a display
  1822. for the last score etc so the player knows how well he did.
  1823.     I also got right into the nitty-gritty, by giving each ghost there
  1824. own character. Before, eating a ghost would just reset its position only. Had
  1825. to change that so a ghost can`t be regobbled unless another pill is eaten,
  1826. though the others would still be available. This works much better, as the
  1827. player can`t pick on the same one all the time, and it means more of a
  1828. challenge, as the player is not totally invulnerable while under the effects
  1829. of a powerpill. The inteligence was modified again, so that the ghosts that
  1830. are vulnerable will try to stay away from you, while the others will go all
  1831. out trying to protect their friends. The scoring now gives a higher score
  1832. dependent on which ghost is gobbled etc, and generally just spent a long
  1833. time synchronising the gameplay. More playtesting resulted in one hell of a
  1834. dissapointing discovery: the programmer is not that good at his own game. I
  1835. know I aimed to write an inteligent ghost movement routine but it looks like
  1836. I even excelled myself. What a morale boost. It`s quiet fortunate that the
  1837. ghosts start off moving a lot slower than pacman at the begining otherwise
  1838. I wouldn`t have a hope in hell. On later levels, with my cheat mode on of
  1839. course, the ghosts are hell to stay away from. Especially on the screens I
  1840. have done with no powrer-pills and a smaller playing area. This is certainly
  1841. challenging. I defy anyone to go through all ten default screens on the top
  1842. level. I also made sure I wasn`t allowed to enter a high score if I played
  1843. with the cheat mode on. Talk about having it to easy. If I leave the cheat
  1844. mode in the game (Not sure yet) then I`ll leave that bit in as well, because
  1845. I am thinking about having a mode to save highscores to disk and it would
  1846. have ridiculous entries if the player did it while invincible.
  1847.     Did my final editing with the map-editor today. All the maps work
  1848. just fine now, and the inteligence routine is smart enough to cope with
  1849. anything I chuck it`s way. Just as well, as users will probably put in much
  1850. better screens than I have come up with.
  1851.     There now follows a party political broadcast by the ....... Ooops,
  1852. I mean a list of what`s left to do before I can finally put this game to
  1853. rest.
  1854.  
  1855. 1. End of level screen improvement. (I`m surprised I haven`t got round to it
  1856.                      yet.)
  1857. 2. Pacmans animation. (I have to go back to the sprite designer for this one,
  1858.                so who knows what else I might do while I am there.)
  1859. 3. The map designer has to go in. (Probably at the end.)
  1860. 4. The real code crunching has to get done. (Quiet an extensive job, now the
  1861.                          game is so long.)
  1862. 5. The following options.
  1863.    ----------------------
  1864. Arcade/custom mode.
  1865. Sound on/off.
  1866. Thick/smart mode. (I might do this one. Not sure if it is nescesary.)
  1867. Keyboard controls. (Not everyone likes using a joystick.)
  1868.  
  1869. I`ve got the space in that little options box on the title screen now that
  1870. I have reworked the front-end in, so a lot of these will probably be quiet
  1871. easy to shove in. Still don`t know why I took them out, though.
  1872.     That`s the end for today. And what a day. Back soon.
  1873.  
  1874. Day 34: 6th July 1993.
  1875. ----------------------
  1876. Didn`t get much done yesterday, as my friend was around playing the game to
  1877. death. Got some much needed input, and some minor cosmetics were changed.
  1878. Nothing major to report.
  1879.     Started off today`s session by putting in the option selection bits
  1880. on the title screen. Everything is in place now, though I have yet to have
  1881. them do anything. I did make a start on the arcade mode/normal mode toggle
  1882. but because I`ve changed the player movement routine about so much, it`s
  1883. going to need a little more work than I imagined. This will get done next
  1884. time. I have decided to have the sound effects toggled in game by the S key
  1885. and I am thinking along the lines of having the screen flash when the sound
  1886. is off so that you know when pacman can gobble the ghosts. At the moment the
  1887. ghosts do flash when they are vulnerable, but it`s a little too subtle. I
  1888. also have to fiddle with the pointers on the meanies as they don`t work
  1889. properly with the effects of the power pills. In other words some of them
  1890. can be gobbled twice, and the power sometimes cuts out to soon. Need a little
  1891. more fiddling there.
  1892.     I intended to work on the arcade mode again but I started messing
  1893. about with some of the graphics commands instead, and got a new clearbox
  1894. routine which looks much flasher than the boring little scroll I had before.
  1895. Also got the end of level screen done, which now sort of chops bits out so
  1896. that it has a faded background look and stamps down a bold message telling
  1897. you that you cleared the level etc. Finally got some screen bounce effects
  1898. in for losing a life and going back to the title screen etc. The between
  1899. game effects are finished with now, as too much fiddling will probably ruin
  1900. the effects. The game is now linked together properly, and it`s just a matter
  1901. of getting the rest of the options in.
  1902.     Now that I know what my next project is going to be, I`ve been doing
  1903. some preliminary coding to get one of the background routines done for that
  1904. as well. Nothing major, but I`ve wanted to do a star background for ages, and
  1905. so I`ve put one together which is 3d like Elite and I can play with the
  1906. values to go in different directions. No it`s not going to be a 3d game like
  1907. Elite, I am not at that stage yet, but the effect will be used for various
  1908. information screens, and probably the title screen as well. A star background
  1909. moving in different directions with the credits on it, is going to look well
  1910. smart, although I have yet to get anything else apart from stars on screen
  1911. yet. Like I said, it`s just a routine for the game, and I wrote it as a 
  1912. little diversion from Pacman. It will be a while before I move on to the
  1913. game 100%.
  1914.     Back to Pacman tomorow. Hopefully for the grand finish.
  1915.  
  1916. Day 35: July 8th 1993.
  1917. ----------------------
  1918. Got down to the final parts today and spent lots of time trying to put in a
  1919. keyboard option which just would not work well enough, and had to be taken
  1920. out again. The problem is that I don`t know how to clear the buffer of the
  1921. keyboard, so if the player held down the left key for ages, then the program
  1922. would keep trying to go left even after pacman has hit a wall, and other
  1923. movements are frozen until the buffer is cleared. Gave up on it after a while
  1924. - who still uses keyboard anyway - and moved on.
  1925.     Next on my list was the sound on/off option. Easy peasy. Press S in
  1926. the game to toggle them.
  1927.     And then we came to the arcade/normal mode. As I said earlier, I had
  1928. been having troubles with this since I took it out originally, so a lot of
  1929. work was called for before I finally got it right. I made it in the end, even
  1930. though there were many times I felt like just abandoning it and leaving the
  1931. option out. Coward.
  1932.     I went on to do the final settings for the speed of player and ghost
  1933. etc, and also dropped another skill level, as the game played far too slow
  1934. on the easiest level, and my playtester said it should start a level up. Did
  1935. some more synchronisation on the speed of everything depending on the level,
  1936. powerpills being active etc, and making sure that the ghosts can never
  1937. move faster than pacman. And that was it.
  1938.  
  1939.     The game is now complete.
  1940.  
  1941.     Bet that shocked you, huh! Thought I`d never get it finished, eh.
  1942. Thirty five days in total, and he has finally done it. Technically I still
  1943. have some work to do, though, because I have to go over the whole code, just
  1944. tidying up in general, and shortening some of the routines etc. This should
  1945. not be too major a job now because I have been preparing for this day, and I
  1946. have done some of the work while I have been stuck in other parts.
  1947.     I finally decided not to have the Editor in with the main program, as
  1948. I will have it as another compiled program with the game. I upgraded the
  1949. editor for the final time today, just to incorporate the code to save all
  1950. data to a bank which the game will use, and make the nescesary adjustments so
  1951. that only the custom screens are available for editing.
  1952.     And there we have it. The game just needs tidying up. Then I can
  1953. shove it and the editor through the compiler. I then have to set up a self-
  1954. booting disk that will use workbench to load either the game, editor, or the
  1955. diary as well as store all the backup files of the data used within the game.
  1956.     I`ll have an ascII dump of the source code on there as well so that
  1957. anyone interested can fiddle with the game with their own version of Amos.
  1958.     I`ll leave all that until tomorow though, as I`ve had enough for one
  1959. day, and fancy a blast on Project X. I`m thinking about submiting the disk to
  1960. a P.D library to get some feedback. It will be interesting to see if they
  1961. accept it, on the basis of an educational disk in Amos, or a tutorial. I 
  1962. don`t think the game will go on anyones top ten somehow, even though it does
  1963. play quite well. We`ll see.
  1964.  
  1965. Day 36: July 10th 1993.
  1966. -----------------------
  1967. Spent most of the day fixing my car, so no work got done on the game until
  1968. very late today. Had two of my friends running through the game extensively
  1969. today and got my final input for improvements and modifications.
  1970.     The opinion was that the Pacman moves to fast in powerpill mode, so
  1971. that had to be toned down a bit. Also the ghost positions had to be reset
  1972. each time the player loses a life. Before the player would just go in a loop
  1973. of dying, if he died while a ghost was in his starting square. Not good.
  1974.     Also had to fix the game so that Pacman didn`t go off in the last
  1975. direction set when he died at the start of a new life while in arcade mode.
  1976. This usually led to him colliding straight into a ghost. Also not good.
  1977.     Fixed the cheat mode so that it is not accessed so easily. Study the
  1978. source code if you want to know how to access it.
  1979.     Modified the game so that end of level and pause mode could be got
  1980. out of with the fire button.
  1981.     Also went into the front end and put in a text message showing credit
  1982. to all my playtesters, and modified the high score text accordingly. Put in
  1983. a short routine to load/save & reset the scores as well from the title
  1984. screen. That gives the player something to aim for.
  1985.     Finally got around to reworking all the code to strip out all the
  1986. unescesary bits and shorten it all. No problems now, and the game works fine.
  1987.     Tomorow just involves setting up a disk for the game and relevant
  1988. files and putting everything through the compiler. Then our saga is over.
  1989. Until the next game anyway. See you.
  1990.  
  1991. Day 37: July 12th 1993.
  1992. -----------------------
  1993. Looks like my problems are not quiet over yet. After doing half of the disk
  1994. setting up buisness, I am having a few problems with the compiler. I am
  1995. trying to get it to compile as workbench programs, but it doesn`t seem to
  1996. like it. The game loads ok, but the screen just exits the game as soon as it
  1997. starts. I haven`t used the compiler for anything major before, and something
  1998. tells me that I am going to have to do a lot of fiddling before I get it
  1999. right.
  2000.     And, just to put the knife in, every disk I seem to be using to save
  2001. all the info on, seems to come up with a read/error. Probably because I have
  2002. used up all my new ones, and have resorted to using old ones with stuff
  2003. already on them that I don`t need anymore, or have consigned to my blank
  2004. disk area for some reason - probably because I`ve seen the error before and
  2005. forgotten about it. I`ll have to start from scratch and use a new one, as 
  2006. well as sorting out why the compiler is being so stubborn. It sometimes seems
  2007. like my problems will never end.
  2008.     I just hope I don`t need to make anymore changes after I have 
  2009. compiled the game, otherwise I will have to do it all again, and it takes
  2010. about ten minutes each time. Not to mention the hassle. I think another last
  2011. playtesting session is called for. Back tomorow.
  2012.  
  2013. Day 38: July 13th 1993.
  2014. -----------------------
  2015. At last.... It's official. Amos and I are talking again. After much fiddling
  2016. with the Compiler, I have finally got the game compiled and running as it
  2017. should. Had a heart attack almost when I loaded the compiled version and saw
  2018. the speed it was running at. Had to reload the Amos version and change a few
  2019. parametres etc so that everything remains at a playable pace. That done I
  2020. finally found a disk that worked - Well, I never - and set up my system with
  2021. the game,editor,data files,doc files,ASCII dumps and the nescesary files to
  2022. get it all working independently of anything else. In other words it has its
  2023. own workbench enviroment and is a self-booting disk.
  2024.     I have included all the nescesary instructions for getting the game
  2025. back into Amos so anyone who feels inclined can modify the game to their own
  2026. spec and recompile it if desired. Of course I would like my name to stay in
  2027. the program, and not see it floating somewhere else with someone else taking
  2028. all the credit - or flak as the case may be - for it.
  2029.     I still have to draw some Icons for all the files, but I can't see
  2030. this being a major problem even if I haven't used workbench in a long time.
  2031.  
  2032. Epilogue:
  2033. ---------
  2034. This is normally the bit where an author would say: "The butler did it", or
  2035. something like that, but seeing as this is not a book, I will have to come
  2036. up with something more original.
  2037.     In creating this game, I have spent countless hours hunched over the
  2038. keyboard, deep in thought, banging my head against the wall, having my finger
  2039. hovering with menace over the format button, having writers cramp after many
  2040. hours working routines on paper and many jubilant moments when things finally
  2041. were going right. In other words, I have enjoyed every minute of it, and I am
  2042. hoping that some of this satisfaction is passed over to you the user.
  2043.     Before signing off for the final time, I would just like to say a few
  2044. thank-you's to some people who have helped me greatly in my quest for
  2045. getting-it-right.
  2046.  
  2047.     Please stand and take a bow the following:
  2048.  
  2049. Lee Stothers (Mega bothered) for testing it at several stages and complaining
  2050. when it was either to hard or to easy. Not to mention always cheating with my
  2051. cheat mode option. That's mine; keep yer hands off, pal!!
  2052.  
  2053. Gary Pearce (Doc) for doing the final playtesting and giving me a detailed
  2054. list of what was wrong, and how to improve it. Sorry I couldn't configure the
  2055. arcade mode to your exact specs' but I did my best.
  2056.  
  2057. Carl Manley for having the first test on a very early version of the game -
  2058. ie: no monsters and jerky movement on Pacman - and coming up with the most
  2059. honest statement I have yet to hear: "Basically, it's crap." I hope it's 
  2060. better for you now, honey. Ha,ha. Hope you die soon.
  2061.  
  2062. Thank-you's in great abundance go out to the following magazines for using
  2063. some of their files in the game.
  2064.  
  2065.     C U amiga - for giving me Amos in the first place.
  2066.     Amiga format - for the groovy Game over sample, and the tracker tune
  2067.             on the high score table.
  2068.     Amiga computing - for the Blue Monday soundtrack from one of their
  2069.             very old coverdisks. Even if I did think it was True
  2070.             faith by New order for a long time.
  2071.  
  2072. Special Thank you to Clare - my trusty red Capri - which has just broken down
  2073. on me for the second time in a week. That's it. I'm trading you in on a 
  2074. Skoda.
  2075.  
  2076. Finally, thanks to my job for keeping me away from the computer whenever I
  2077. had something realy important to do on the game, and forgot about when I
  2078. finally finished my shift. Never work as a duty-manager at a Pizza hut. The
  2079. hours are terrible. Though it is handy when I need transport. Sales rep's
  2080. get Vauxhall Cavaliers; I get a company Moped. 49cc Turbo no less. What a
  2081. great career. Not.
  2082.  
  2083. To close, I must say a thank you to you for taking the time to read me
  2084. waffling on and I hope this disk and its material is of some use to you in
  2085. whatever form. Remember to drop me a line for any comments or suggestions
  2086. etc. My letterbox is always open. The address is in the read-me file also on
  2087. this disk.
  2088.  
  2089. Thank you. Have fun.
  2090.  
  2091.     Tony Brice. 13th July 1993.
  2092.